我有一个数据框,其中有A、B和C列。我想在A上分组,然后在B上分组,同时取C的和。然后,我想返回每组A的2个最高和。
一个例子看起来像这样。
data = {'State': ['NY', 'NY', 'NY', 'NY', 'CA', 'CA', 'CA', 'CA'],
'City': ['New York', 'Buffalo', 'New York', 'Albany', 'SF', 'LA', 'SF', 'SD'],
'Value': [25, 30, 35, 40, 10, 15, 20, 10],}
结果:
国家 | 城市 | 价值总和 |
---|---|---|
纽约州 | 纽约州 | 六十 |
纽约州 | 奥尔巴尼 | 四十 |
CA | SF | 三十 |
CA | LA | 10个 |
我试过
summed = df.groupby(['A','B'])['C'].sum()
grouped = summed.groupby('A').nlargest(2)
这给出了正确的结果,但它有一个A作为来自double groupby()的double索引。有没有一个更干净的方法来得到这个结果,而不必有这个双重索引?
1条答案
按热度按时间f4t66c6m1#
删除多索引的级别,然后重置索引: