python - 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 也不会做任何事情。
解决方案
这个问题的解决方法是:
df.drop_duplicates(subset=['item_id', 'price'], inplace=True)
推荐阅读
- arrays - Labview - 接收串行数据的固定大小数组?
- vb.net - LINQ 从 2 个数据表中选择所有列并作为 1 个数据表返回 VB.NET
- php - 从 url 替换特定值
- linux - 将坏文件转换为正确的格式
- database - 没有这样的列:False 插入 SQLite 数据库时
- javascript - 我的 JavaScript 代码为 getElementById 返回 null
- elasticsearch - 连接到elasticsearch集群时docker ELK stack的Search-guard插件出现问题
- php - Woocommerce 哪个模板包含自定义结帐字段?
- python - heapq:将自定义优先级键与不可比较的关联数据一起使用的优雅方法是什么?
- monitoring - 在具有数千个 PM 计数器的现有大型系统中实施 Prometheus 端点