Pandas数据分析面试基础题(五)

327 阅读2分钟

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

image.png

# 删除索引为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 方法一次只能删除一列,有一定局限性,一般不常用。

原创不易,如果小伙伴们觉得有帮助,麻烦点个赞再走呗~

最后,感谢女朋友在工作和生活中的包容、理解与支持 !