Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。
本篇文章的试题主要介绍一下 DataFrame 的删除操作。
试题:如何删除 DataFrame 的某行/某列数据?
(难度:easy)
分析
DataFrame 一般使用drop()
函数进行行和列的删除操作。
用法如下:
dataFrame.drop(labels=None, axis=0, index=None, columns=None, inplace=False)
参数说明:
labels
:要删除的行或列的名称,多个的话使用列表指定。axis
:0和1分别代表行和列,默认为0,即删除行,删除列时指定axis=1
。index
:指定要删除的行。columns
指定要删除的列。inplace
:默认为False,表示该删除操作不改变原数据,而是返回一个执行删除操作后的新 Dataframe,设置为True的话会直接在原数据上进行删除操作。
drop(labels, axis=0)
等价于drop(index=labels)
,drop(labels, axis=1)
等价于drop(columns=labels)
代码
# 创建dataframe
students = {'id':[1,2,3,4,5], 'name':['one','two','three','four','five'], 'score':[90,88,89,65,95], 'class':[1,1,2,2,3]}
df = pd.DataFrame(students)
df
# 删除索引为4的行
df.drop(4, inplace=True)
# 删除索引为1,3的行
df.drop([1,3], inplace=True)
# 删除索引为class的列
df.drop('class', axis=1, inplace=True)
# 删除索引为id,name的列
df.drop(["id","name"], axis=1, inplace=True)
# 等价于
# df.drop(columns=["id","name"], inplace=True)
df
另外,drop
方法还支持使用条件删除,例如:
# 删除score小于80的行
df1 = df.drop(df[df['score']<80].index)
df1
除了使用drop
方法外,使用del
也可以删除 DataFrame 列,例如del df['test']
删除名称为 test 的 DataFrame 列。
示例如下:
# 删除索引名称为id的列
del df['id']
df
不过,del 方法一次只能删除一列,有一定局限性,一般不常用。
原创不易,如果小伙伴们觉得有帮助,麻烦点个赞再走呗~
最后,感谢女朋友在工作和生活中的包容、理解与支持 !