首页 > 解决方案 > Pandas Dataframe 根据具有相等值的两列删除行

问题描述

基本上我有一个数据框,其中有很多列,但主要是 ITEM_ID 和 PRICE。

例如:

ID  ITEM_ID  ITEM     PRICE
1      1      potato    20
2      1      potato    20
3      1      potato    25
4      2      tomato    50
5      2      tomato    55
 

我想删除 ITEM_ID 和 PRICE 相等的行,所以输出将是这样的:

ID  ITEM_ID  ITEM     PRICE
1      1      potato    20
2      1      potato    25
3      2      tomato    50
4      2      tomato    55
 

我正在使用计算平均价格

df['AVG'] = df.groupby('ITEM_ID')['PRICE'].transform('mean')

但我意识到,我正在使用重复值进行计数,所以平均值不正确。

有人可以帮忙吗?

编辑:

尝试后建议

df.drop_duplicates(subset=['item_id', 'price'])

数据仍然存在,即使 keep=False 也不会做任何事情。

标签: pythonpandasdataframeduplicates

解决方案


这个问题的解决方法是:

df.drop_duplicates(subset=['item_id', 'price'], inplace=True)

推荐阅读