我有一个按列、行、年、总额分组的大型数据集.我正在try 获取某个组中某一年的"合计"栏的最大值.即,对于下面的数据集:
col row year potveg total
-125.0 42.5 2015 9 697.3
2015 13 535.2
2015 15 82.3
2016 9 907.8
2016 13 137.6
2016 15 268.4
2017 9 961.9
2017 13 74.2
2017 15 248.0
2018 9 937.9
2018 13 575.6
2018 15 215.5
-135.0 70.5 2015 8 697.3
2015 10 535.2
2015 19 82.3
2016 8 907.8
2016 10 137.6
2016 19 268.4
2017 8 961.9
2017 10 74.2
2017 19 248.0
2018 8 937.9
2018 10 575.6
2018 19 215.5
我希望输出如下所示:
col row year potveg total
-125.0 42.5 2015 9 697.3
2016 9 907.8
2017 9 961.9
2018 9 937.9
-135.0 70.5 2015 8 697.3
2016 8 907.8
2017 8 961.9
2018 8 937.9
我试过这个:
df.groupby(['col', 'row', 'year', 'potveg']).agg({'total': 'max'})
还有这个:
df.groupby(['col', 'row', 'year', 'potveg'])['total'].max()
但它们似乎不起作用,因为输出的行数太多. 我认为问题出在‘potveg’栏目,它是一个子组.我不确定如何 Select 包含最大值‘Total’的行.