我有一个数据框;
Date Price Product
1/1/12 22 Pen
1/2/12 44 Paper
1/2/12 33 Paper
1/3/12 34 Paper
如果日期和产品重复,我想取最小值。
所以预期的输出是
Date Price Product
1/1/12 22 Pen
1/2/12 33 Paper
1/3/12 34 Paper
我很高兴将数据保留为平面文件格式或创建时间序列数据透视表。
我目前唯一看到的选择是按价格(从最高到最低)排序,然后删除重复项并保持“最后”。但热衷于探索是否有更好的方法可以做到这一点
答案 0 :(得分:2)
df.sort_values('Price', ascending=False).groupby(['Date','Product'],sort=False).last()
Price
Date Product
1/2/12 Paper 33
1/3/12 Paper 34
1/1/12 Pen 22
cs95的反馈是准确的。
答案 1 :(得分:1)
您可以先按价格排序,然后再按日期和产品删除重复项。
df.sort_values(by=['Price']).drop_duplicates(subset=['Date', 'Product'])
Date Price Product
0 1/1/12 22 Pen
2 1/2/12 33 Paper
3 1/3/12 34 Paper