我有一个两级分层索引的整数序列。
>> s
id1 id2
1 a 100
b 10
c 9
2 a 2000
3 a 5
b 10
c 15
d 20
...
Run Code Online (Sandbox Code Playgroud)
我想按 id1 分组,并选择最大值,但在结果中有完整的索引。我尝试了以下方法:
>> s.groupby(level=0).aggregate(np.max)
id1
1 100
2 2000
3 20
Run Code Online (Sandbox Code Playgroud)
但结果仅由 id1 索引。我希望我的输出看起来像这样:
id1 id2
1 a 100
2 a 2000
3 d 20
Run Code Online (Sandbox Code Playgroud)
这里提出了一个相关但更复杂的问题: Multiindexed Pandas groupby, ignore a level? 正如它所说,答案是一种黑客。
有谁知道更好的解决方案?如果不是,那么 id2 的每个值都是唯一的特殊情况呢?