在 Pandas 中,你可以使用 drop_duplicates
方法来删除重复项。这个方法允许你指定要考虑的列,并且可以根据第三列的条件来保留特定的行。以下是一个示例,展示了如何使用两列和第三列上的条件来删除重复项。
假设你有一个数据帧 df
,其中包含三列 A
, B
, 和 C
。你希望在列 A
和 B
上找到重复项,并根据列 C
的值来决定保留哪一行。
import pandas as pd
data = {
'A': [1, 1, 2, 2, 3, 3],
'B': [10, 10, 20, 20, 30, 30],
'C': [100, 200, 300, 400, 500, 600]
}
df = pd.DataFrame(data)
print("原始数据帧:")
print(df)
假设你希望在列 A
和 B
上找到重复项,并保留列 C
值最大的行。你可以使用以下方法:
A
, B
和 C
进行排序,其中 C
列按降序排列。drop_duplicates
方法删除重复项,并保留第一次出现的行(即 C
列值最大的行)。# 按列 A, B 和 C 排序,C 列按降序排列
df_sorted = df.sort_values(by=['A', 'B', 'C'], ascending=[True, True, False])
# 删除重复项,保留第一次出现的行
df_unique = df_sorted.drop_duplicates(subset=['A', 'B'], keep='first')
print("删除重复项后的数据帧:")
print(df_unique)
原始数据帧:
A B C
0 1 10 100
1 1 10 200
2 2 20 300
3 2 20 400
4 3 30 500
5 3 30 600
删除重复项后的数据帧:
A B C
1 1 10 200
3 2 20 400
5 3 30 600
在这个示例中,数据帧首先按列 A
, B
和 C
排序,其中 C
列按降序排列。然后,使用 drop_duplicates
方法删除列 A
和 B
上的重复项,并保留 C
列值最大的行。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云