從Pandas GroupBy MultiIndex 系列輸出中檢索行
給定一個具有多索引的DataFrame,您可以執行GroupBy 操作來計數或計數匯總值。但是,產生的輸出是具有分層索引的系列,因此很難查看原始行。本文介紹如何將此輸出轉換回包含原始行的 DataFrame。
問題:
如何轉換 Pandas GroupBy 多索引 Series 輸出,如:
City Name Name City Alice Seattle 1 1 Bob Seattle 2 2 Mallory Portland 2 2 Seattle 1 1
進入另一個保留所有原始資料的DataFrame rows?
答案:
將 Series 轉換回 DataFrame 的關鍵是處理分層索引。這裡有兩種方法:
1。使用add_suffix和reset_index
g1.add_suffix('_Count').reset_index()
此方法向列名新增後綴並重設分層索引以建立具有平面索引的新DataFrame。
輸出:
Name City City_Count Name_Count 0 Alice Seattle 1 1 1 Bob Seattle 2 2 2 Mallory Portland 2 2 3 Mallory Seattle 1 1
2.使用DataFrame 和reset_index
DataFrame({'count' : df1.groupby( [ "Name", "City"] ).size()}).reset_index()
此方法根據分組建立大小一個新的DataFrame,並重設分層索引以獲得平面DataFrame。
輸出:
Name City count 0 Alice Seattle 1 1 Bob Seattle 2 2 Mallory Portland 2 3 Mallory Seattle 1
這些方法可讓您從 GroupBy 多索引系列中提取行輸出並重建包含所有原始資料的 DataFrame。
以上是如何將 Pandas GroupBy 多索引系列輸出轉換回 DataFrame?的詳細內容。更多資訊請關注PHP中文網其他相關文章!