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

363 阅读2分钟

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情

删除重复数据是数据分析中经常会遇到的一个问题,通过去重,可以让数据集更加精确,同时也可以节约空间等,本篇文章就来说一下 Dataframe 数据的去重处理。

试题:如何对 DataFrame 数据进行去重处理?

(难度:medium)

分析 Panda DataFrame 对象通过drop_duplicates()方法进行数据去重,语法格式如下:

df.drop_duplicates(subset=['A','B','C'], keep='first', inplace=True)

参数说明如下:

  • subset:要进去重的列名,默认为 False, 例如subset=['A','B','C']表示根据A、B、C组合列进行去重。
  • keep:有三个可选参数,分别是firstlastFalse,分别表示只保留第一次出现的重复项、只保留最后一次出现的重复项、删除所有重复项只保留不重复的数据,默认为first
  • inplace:布尔值参数,默认为 False,如果为 Ture 则表示直接在原数据上删除重复项。

具体使用如下,创建一个包含有重复值的 DataFrame 对象并对其进行去重操作:

import pandas as pd

a = pd.DataFrame({
         'A':[1,2,3,1,5],
         'B':[0,2,4,0,1],
         'C':[3,2,3,3,1],
         'D':[2,5,4,2,0]})
print(a)

输出如下:

   A  B  C  D
0  1  0  3  2
1  2  2  2  5
2  3  4  3  4
3  1  0  3  2
4  5  1  1  0
# 默认保留第一次出现的重复项
a.drop_duplicates(inplace=True)
a

结果输出如下:

   A  B  C  D
0  1  0  3  2
1  2  2  2  5
2  3  4  3  4
4  5  1  1  0
# keep设置为False,删除所有重复项
a.drop_duplicates(keep=False, inplace=True)
a

扩展:Pandas Dataframe 还有一个函数duplicated()可以判断是否有重复项,具体使用如下:

print(a.duplicated())

结果输出如下:

0    False
1    False
2    False
3     True
4    False
dtype: bool

表示,行索引index为3的数据项是重复的数据。该函数也支持对某一列或者某几列进行重复判断。

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

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