Pandas Dataframe 根据具有相等值的两列删除行
Pandas Dataframe remove rows depending on two columns with equal values
基本上我有一个数据框,其中有很多列,但主要是 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也不行
这个问题的解决方法是:
df.drop_duplicates(subset=['item_id', 'price'], inplace=True)
基本上我有一个数据框,其中有很多列,但主要是 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也不行
这个问题的解决方法是:
df.drop_duplicates(subset=['item_id', 'price'], inplace=True)