簡體   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