Pandas 如何在多索引组上应用函数
我有一个多索引的熊猫系列Pandas 如何在多索引组上应用函数,pandas,Pandas,我有一个多索引的熊猫系列 df= code names B1 Aaaaa 7 Abaaa 7 Bbbbb 2
df=
code names
B1 Aaaaa 7
Abaaa 7
Bbbbb 2
Bcccc 6
B2 Ssss 1
Yyyy 1
Bbbb 1
BBbb 1
我希望返回具有最大值的索引。如果有多个索引共享最大值,则必须选择第一个按字母顺序排列的索引
df=
code names
B1 Aaaaa 7
B2 BBbb 1
我试过使用这个代码
df=df.reset_index().groupby('names',as_index=False).apply(lambda x: x.max())
但它返回了错误的意甲
谢谢你的帮助
df.loc[df.groupby(level=0).idxmax()]
或
df:
x
code names
B1 Aaaaa 7
Abaaa 7
Bbbbb 2
Bcccc 6
B2 Ssss 1
Yyyy 1
Bbbb 1
BBbb 1
x
code names
B1 Abaaa 7
B2 Yyyy 1
结果:
x
code names
B1 Aaaaa 7
Abaaa 7
Bbbbb 2
Bcccc 6
B2 Ssss 1
Yyyy 1
Bbbb 1
BBbb 1
x
code names
B1 Abaaa 7
B2 Yyyy 1
编辑:
x
code names
B1 Aaaaa 7
Abaaa 7
Bbbbb 2
Bcccc 6
B2 Ssss 1
Yyyy 1
Bbbb 1
BBbb 1
x
code names
B1 Abaaa 7
B2 Yyyy 1
设置升序=[真,真]
df.loc[df.sort_values(['code','names'], ascending=[True,True]).groupby('code')['x'].idxmax()]
代码应该返回共享相同最大值的行的第一个字母名称。@PygirlDo ascending=[True,True]