Python 保持与数据帧中另一列的最大值相对应的值
我有一个数据帧Python 保持与数据帧中另一列的最大值相对应的值,python,pandas,dataframe,group-by,Python,Pandas,Dataframe,Group By,我有一个数据帧 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 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')
印刷品:
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
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