码迷,mamicode.com
首页 > 其他好文 > 详细

Pandas常用操作 - 去重

时间:2021-06-06 19:31:16      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:ack   删除   默认   int   其他   初始   taf   数组   set   

1. 使用 drop_duplicates 去重

1.1 初始化数据

df = pd.DataFrame({‘stu_name‘: [‘Tom‘, ‘Tony‘, ‘Jack‘, ‘Jack‘, np.nan], ‘stu_age‘: [16, 16, 15, np.nan, 21]})
  stu_name  stu_age
0    Nancy     17.0
1     Tony     16.0
2     Tony     16.0
3     Jack     21.0
4     Jack      NaN

1.2 对一列去重

df_clean = df.drop_duplicates(subset=[‘stu_name‘])
print(df)

结果为:

  stu_name  stu_age
0    Nancy     17.0
1     Tony     16.0
3     Jack     21.0

1.3 对多列去重(多列同时满足重复)

df_clean2 = df.drop_duplicates(subset=[‘stu_name‘, ‘stu_age‘])
print(df_clean2)

结果为:

  stu_name  stu_age
0    Nancy     17.0
1     Tony     16.0
3     Jack     21.0
4     Jack      NaN

2. 使用 duplicated 配合 drop 去重

2.1 初始化数据

df = pd.DataFrame({‘stu_name‘: [‘Tom‘, ‘Tony‘, ‘Jack‘, ‘Jack‘, np.nan], ‘stu_age‘: [16, 16, 15, np.nan, 21]})
  stu_name  stu_age
0    Nancy     17.0
1     Tony     16.0
2     Tony     16.0
3     Jack     21.0
4     Jack      NaN

2.2 对一列去重

duplicate_df = df[df.duplicated(‘stu_name‘)]
clean_df = df.drop(duplicate_df.index)
  1. 使用 duplicated 先筛选出重复的行
  2. 使用 drop 删除掉重复行

3. drop_duplicatesduplicated 常用参数含义

subset: 单个列名或者 一组列名数组(可选)。如果不设置该参数,则默认对全部列进行去重
keep: 保留的列

  • ‘first‘: 只保留第一个,其他重复项被删除(默认)
  • ‘last‘: 只保留最后一个,其他重复项被删除
  • False: 出现重复项则都被删除

Pandas常用操作 - 去重

标签:ack   删除   默认   int   其他   初始   taf   数组   set   

原文地址:https://www.cnblogs.com/convict/p/14855162.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!