使用 GroupBy 按多列對 DataFrame 進行分組時,結果通常是 MultiIndex Series。但是,在某些情況下,您可能需要以 DataFrame 格式傳回資料。本文示範如何將 GroupBy 的 MultiIndex Series 輸出轉換回 DataFrame。
考慮以下範例DataFrame:
City Name 0 Seattle Alice 1 Seattle Bob 2 Portland Mallory 3 Seattle Mallory 4 Seattle Bob 5 Portland Mallory
將GroupBy 與多個欄位一起使用,我們可以計算出現次數:
g1 = df1.groupby(["Name", "City"]).count()
但是,g1 的輸出是一個MultiIndex系列:
City Name Name City Alice Seattle 1 1 Bob Seattle 2 2 Mallory Portland 2 2 Seattle 1 1
要將其轉換回DataFrame,您可以利用兩種方法:
方法1:新增後綴和重設索引
為列名加上後綴並重設索引:
g1.add_suffix('_Count').reset_index()
這會建立一個包含三列的DataFrame:Name、City 和另外兩列,後綴為_Count 來表示計數。
方法2:使用DataFrame 建構子
或者,您可以使用DataFrame 建構子和.size() 方法來計算出現次數並重設index:
DataFrame({'count' : df1.groupby( [ "Name", "City"] ).size()}).reset_index()
此方法將建立一個包含兩列的DataFrame:名稱、城市和表示計數的附加列計數。
以上是如何將 Pandas GroupBy MultiIndex 系列轉換為 DataFrame?的詳細內容。更多資訊請關注PHP中文網其他相關文章!