【发布时间】:2021-06-29 08:51:28
【问题描述】:
我有一个数据框
day type price
0 10900 2 300
1 10900 1 500
2 10900 3 200
3 10901 5 100
4 10901 2 400
5 10901 1 300
6 10902 2 100
7 10902 3 300
8 10902 1 200
9 10902 4 400
并且我希望每天保持最高类型的价格并复制当天的所有价格,因此结果将是:
day type price
0 10900 2 200
1 10900 1 200
2 10900 3 200
3 10901 5 100
4 10901 2 100
5 10901 1 100
6 10902 2 400
7 10902 3 400
8 10902 1 400
9 10902 4 400
所以这就是我正在做的事情,我想知道这是否是最好的方式,或者是否有办法不使用合并并以另一种方式进行分组:
tmp_df=df[df.groupby('day')['type'].transform('max') == df['type']].reset_index()
df=df[['day','type']].merge(tmp_df[['day','price']],on='day')
【问题讨论】:
标签: python pandas dataframe group-by