在Pandas库中,DataFrame.drop() 用于移除DataFrame中的行或列。
df.drop(labels = None, axis = 0, index = None, columns = None, level = None, inplace = False,errors = 'raise')
参数:
1.labels:要删除的列或者行,如果要删除多个,传入列表
2.axis:轴的方向,0为行,1为列,默认为0
3.index:指定的一行或多行
4.columns:指定的一列或多列
5.level:索引层级,将删除此层级
6.inplace:布尔值,默认为False
7.errors:ignore或raise,默认为raise,如果为ignore,则容忍错误,仅删除现有标签
删除行
1.使用索引删除行:
df.drop(1,axis=0)
2.使用索引删除多行
df.drop([1,2,3],axis=0)
与 df.drop(index=[1,2,3])
等效。
3. 删除某列指定值所在的行
df = df.drop(df[df['columns_name'] == 'USA'].index)
# 删除columns_name列中值为USA的行
4. 根据某列条件删除多行的值
df = df.drop(df[df['score'] < 80].index)
# 删除score列中小于80的行
5. 根据多个列的条件删除行
(1)删除gender为M或者score小于90的行
df = df.drop(df[(df['gender'] == 'M') | (df['score'] < 90)].index)
(2)删除gender为M 同时score小于90的行
df = df.drop(df[(df['gender'] == 'M') & (df['score'] < 90)].index)
删除列
1.删除单列
df.drop('columns_name', axis=1)
# 注意此处 axis参数为1
2.删除多列
df.drop(df.columns[1:3], axis=1, inplace=True)