pandas - drop()函数
函数形式:
DataFrame.
drop
(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')
函数作用:删除DataFrame的指定行、指定列(可以多行多列)。
函数参数:labels是指要删除的标签,一个或者是列表形式的多个,axis是指处哪一个轴,columns是指某一列或者多列,level是指等级,针对多重索引的情况,inplaces是否替换原来的dataframe
>>> df = pd.DataFrame(np.arange(12).reshape(3,4), ... columns=['A', 'B', 'C', 'D']) >>> df A B C D 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11 #指定删除相关的列,没有带columns,所以要指出是哪个轴上的 >>> df.drop(['B', 'C'], axis=1) A D 0 0 3 1 4 7 2 8 11 #这里带有columns,所以不用加上axis参数 >>> df.drop(columns=['B', 'C']) A D 0 0 3 1 4 7 2 8 11 #删除指定索引的行,这里没有axis参数,就是默认axis=0,也就是删除行 >>> df.drop([0, 1]) A B C D 2 8 9 10 11 #多重索引的情况 >>> midx = pd.MultiIndex(levels=[['lama', 'cow', 'falcon'], ... ['speed', 'weight', 'length']], ... codes=[[0, 0, 0, 1, 1, 1, 2, 2, 2], ... [0, 1, 2, 0, 1, 2, 0, 1, 2]]) >>> df = pd.DataFrame(index=midx, columns=['big', 'small'], ... data=[[45, 30], [200, 100], [1.5, 1], [30, 20], ... [250, 150], [1.5, 0.8], [320, 250], ... [1, 0.8], [0.3,0.2]]) >>> df big small lama speed 45.0 30.0 weight 200.0 100.0 length 1.5 1.0 cow speed 30.0 20.0 weight 250.0 150.0 length 1.5 0.8 falcon speed 320.0 250.0 weight 1.0 0.8 length 0.3 0.2 >>> df.drop(index='cow', columns='small') big lama speed 45.0 weight 200.0 length 1.5 falcon speed 320.0 weight 1.0 length 0.3 >>> df.drop(index='length', level=1) big small lama speed 45.0 30.0 weight 200.0 100.0 cow speed 30.0 20.0 weight 250.0 150.0 falcon speed 320.0 250.0 weight 1.0 0.8 #这里不加index参数 df.drop('length', level=0) big small lama speed 45.0 30.0 weight 200.0 100.0 length 1.5 1.0 cow speed 30.0 20.0 weight 250.0 150.0 length 1.5 0.8 falcon speed 320.0 250.0 weight 1.0 0.8 length 0.3 0.2