熊猫的多层次分组/操作

时间:2019-07-23 15:32:29

标签: python pandas pandas-groupby multi-index

我想按前三列依次对数据帧进行分组,然后为每组保留最大值为“ 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

0 个答案:

没有答案