这两个函数是数据处理是比较常用的函数,在这里重点总结一下,为了方便自己的记忆。也可以和大家一起做一下分享
首先看一下drop函数
DataFrame.
drop
(
labels=None
,
axis=0
,
index=None
,
columns=None
,
level=None
,
inplace=False
,
errors=’raise’
)
这是drop函数的所有参数
labels是指要删除的标签,一个或者是列表形式的多个,axis是指处哪一个轴,columns是指某一列或者多列,level是指等级,针对多重索引的情况,inplaces是否替换原来的dataframe,具体更详细的可以参阅官网
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.drop.html
知道了这些参数,接下来就看一看具体的用法,这里以代码的形式举例说明
>>> 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
#多重索引的情况,因为版本问题,有些版本需要把里面的codes改成labels
>>> 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
delete函数,这个函数比较简单一些
具体的用法如下:
del
df[
'A'
]
# 删除A列,会就地修改
另外,可能drop函数相关的函数还有一些dropna()和drop_duplicated()函数,大家可以了解一下
如果有不合适的地方欢迎讨论,欢迎指导!