python - Pandas Groupby 并在多列中查找重复项
问题描述
我有一个数据框,我想按“Value_pack”列进行分组,并检查 2 个或多个“Value_pack”是否具有相同的“价值”和“折扣”。(重复)
我想从数据框中删除除第一次出现的重复项之外的所有重复项。
输入数据框:
Value_pack value discount
val 1 ADA 0
val 2 ADB 100
val 2 ADA 0 <---- duplicate
val 3 ADA 50
val 3 ADC 50
val 4 ADV 40
输出数据框:
Value_pack value discount
val 1 ADA 0
val 2 ADB 100
val 3 ADA 50
val 3 ADC 50
val 4 ADV 40
df.groupby(['Value_pack']).drop_duplicates(['value', 'discount'])
这是我到目前为止的代码,但我无法弄清楚如何获得我想要的数据框。
解决方案
Using groupby you need to approach this from the other end: You group by value and discount and pick the first Value_pack:
df.groupby(["value", "discount"]).first().reset_index()
推荐阅读
- python - 如何编辑路径字符串的文件名
- python - 聚类数据 - 结果不佳,特征提取
- reactjs - DOMException:无法在“XMLHttpRequest”上执行“打开”:React 应用程序中的 URL 无效
- java - textviewArray[i].setText(stringArray[i]); 一片空白
- twitter - 允许通过应用程序令牌查看私人/受保护的 Twitter 个人资料
- java - 无法将元素添加到地图 - 不支持的操作异常
- reactjs - 在 react-redux 中处理 EDIT ACTION
- java - 如何在此数组代码上进行 for 循环?
- javascript - 转义 javascript 文件下载的内容
- docker - EC2 的用户数据中的 Docker 运行命令无法运行