繁体   English   中英

获取按数据框分组的多索引上具有最大列值的索引

[英]Get index that has max column value on a multi index groupped by dataframe

我正在处理数据集上的熊猫,我想获得在比赛中取得更多胜利的属性。 我能够使用 groupby 函数创建一个数据框。 例如,对于可能有 3+ 个替代项的属性“surface”,我有这个数据框:

我的数据框

现在我想要一个输出数据框,如:

fullname              best_surface
Zuzana Zlochova       Hard
Zuzanna Bednarz       Clay
....

我设法通过对只能具有两个值的属性进行一些合并来解决此问题,但它不适用于可以具有 3 个或更多值的属性。 数据集很大,所以我必须使用 Pandas 操作,我不能使用 iters。

谢谢

使用DataFrameGroupBy.idxmax为指数由第一最大柱hasWon ,选择行和转换MultiIndex ,以DataFrameMultiIndex.to_frame

df = df.loc[df.groupby(level='fullname')['hasWon'].idxmax()].index.to_frame(index=False)
print (df)
              fullname surface
0      Zuzana Zlochova    Hard
1      Zuzanna Bednarz    Clay
2  Zuzanna Szczepanska    Clay
3   Zvonimir Oreskovic    Hard

或者在构造函数DataFrame元组转换为DataFrame

df = pd.DataFrame(df.groupby('fullname')['hasWon'].idxmax().tolist(), 
                  columns=['fullname','best_surface'])
print (df)
              fullname best_surface
0      Zuzana Zlochova         Hard
1      Zuzanna Bednarz         Clay
2  Zuzanna Szczepanska         Clay
3   Zvonimir Oreskovic         Hard

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM