首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用两列和第三列上的条件删除重复项

在 Pandas 中,你可以使用 drop_duplicates 方法来删除重复项。这个方法允许你指定要考虑的列,并且可以根据第三列的条件来保留特定的行。以下是一个示例,展示了如何使用两列和第三列上的条件来删除重复项。

假设你有一个数据帧 df,其中包含三列 A, B, 和 C。你希望在列 AB 上找到重复项,并根据列 C 的值来决定保留哪一行。

示例数据帧

代码语言:javascript
复制
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)

删除重复项并根据第三列的条件保留特定行

假设你希望在列 AB 上找到重复项,并保留列 C 值最大的行。你可以使用以下方法:

  1. 排序数据帧:首先根据列 A, BC 进行排序,其中 C 列按降序排列。
  2. 删除重复项:使用 drop_duplicates 方法删除重复项,并保留第一次出现的行(即 C 列值最大的行)。
代码语言:javascript
复制
# 按列 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)

结果

代码语言:javascript
复制
原始数据帧:
   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, BC 排序,其中 C 列按降序排列。然后,使用 drop_duplicates 方法删除列 AB 上的重复项,并保留 C 列值最大的行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券