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:有三个可选参数,分别是first、last、False,分别表示只保留第一次出现的重复项、只保留最后一次出现的重复项、删除所有重复项只保留不重复的数据,默认为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的数据项是重复的数据。该函数也支持对某一列或者某几列进行重复判断。
原创不易,如果小伙伴们觉得有帮助,麻烦点个赞再走呗~
最后,感谢女朋友在工作和生活中的包容、理解与支持 !