在 pandas 数据框中满足条件的最小值
Minimum if condition is met in pandas dataframe
我有一个数据框;
Date Price Product
1/1/12 22 Pen
1/2/12 44 Paper
1/2/12 33 Paper
1/3/12 34 Paper
如果 Date 和 Product 重复,我只想得到最小值。
所以预期的输出是
Date Price Product
1/1/12 22 Pen
1/2/12 33 Paper
1/3/12 34 Paper
我很乐意将数据保留为平面文件格式或创建时间序列枢轴 table。
我目前能看到的唯一选择是按价格排序(从高到低),然后删除重复项并保留 'last'。但很想探索是否有更好的方法来做到这一点
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 的反馈是准确的。
您可以先按价格排序,然后按日期和产品删除重复项。
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
我有一个数据框;
Date Price Product
1/1/12 22 Pen
1/2/12 44 Paper
1/2/12 33 Paper
1/3/12 34 Paper
如果 Date 和 Product 重复,我只想得到最小值。
所以预期的输出是
Date Price Product
1/1/12 22 Pen
1/2/12 33 Paper
1/3/12 34 Paper
我很乐意将数据保留为平面文件格式或创建时间序列枢轴 table。
我目前能看到的唯一选择是按价格排序(从高到低),然后删除重复项并保留 'last'。但很想探索是否有更好的方法来做到这一点
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 的反馈是准确的。
您可以先按价格排序,然后按日期和产品删除重复项。
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