我想按前三列依次对数据帧进行分组,然后为每组保留最大值为“ i1”的行。如果有重复的行,我只想保留一行。
例如:
in:
df = pd.DataFrame({'id': ['aa', 'aa','aa','aa','b','b','aa','b','d','d'], \
'run#': [1, 1, 1, 2, 1,1,3,1,3,3],\
'z': [2, 2, 3, 2, 2, 2, 2, 2, 2, 2], \
'i1': [100, 200, 100, 100, 200,201,201, 500,500,500],\
'i2': [12,12,12,12,12,12,12,12,12,12]})
out:
id run# z i1 i2
0 aa 1 2 100 12
1 aa 1 2 200 12
2 aa 1 3 100 12
3 aa 2 2 100 12
4 b 1 2 200 12
5 b 1 2 201 12
6 aa 3 2 201 12
7 b 1 2 500 12
8 d 3 2 500 12
9 d 3 2 500 12
我想要的输出是:
id run# z i1 i2
0 aa 1 2 200 12
1 aa 1 3 100 12
2 aa 2 2 100 12
3 aa 3 2 201 12
4 b 1 2 500 12
5 d 3 2 500 12