Pandas常用操作 - 去重


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: 出現重復項則都被刪除


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM