首頁 > 後端開發 > Python教學 > 如何將 Pandas GroupBy MultiIndex 輸出從系列轉換為 DataFrame?

如何將 Pandas GroupBy MultiIndex 輸出從系列轉換為 DataFrame?

Linda Hamilton
發布: 2024-11-22 22:35:20
原創
195 人瀏覽過

How to Convert a Pandas GroupBy MultiIndex Output from Series to DataFrame?

將 Pandas GroupBy MultiIndex 輸出從 Series 轉換為 DataFrame

考慮以下 DataFrame:

df1 = pd.DataFrame({'City': ['Seattle', 'Seattle', 'Portland', 'Seattle', 'Seattle', 'Portland'],
                    'Name': ['Alice', 'Bob', 'Mallory', 'Mallory', 'Bob', 'Mallory']})
登入後複製

使用 groupby(執行分組運算後),輸出是一個層次索引DataFrame,如圖下面:

g1 = df1.groupby(['Name', 'City']).count()

print(g1)
                   City  Name
Name    City
Alice   Seattle      1     1
Bob     Seattle      2     2
Mallory Portland     2     2
        Seattle      1     1
登入後複製

要擷取所需的 DataFrame 結構,有多種方法。

加上字尾並重設索引

這涉及在列中加入字尾名稱並重設層次索引:

g1.add_suffix('_Count').reset_index()

print(
    pd.DataFrame({'City_Count': g1['City'],
                  'Name_Count': g1['Name']
                  })
)
          City_Count  Name_Count
Alice   Seattle      1           1
       Portland     2           2
Bob     Seattle      2           2
Mallory Portland     2           2
        Seattle      1           1
登入後複製

使用size()方法

另一種方法是使用size() 方法來計算每個群組的出現次數並重置索引:

df1.groupby(['Name', 'City']).size().reset_index()

print(
    pd.DataFrame({'Name': g1.index.get_level_values(0),
                  'City': g1.index.get_level_values(1),
                  'Count': g1['City']
                  })
)
      Name      City  Count
0     Alice   Seattle      1
1       Bob   Seattle      2
2   Mallory  Portland      2
3   Mallory   Seattle      1
登入後複製

以上是如何將 Pandas GroupBy MultiIndex 輸出從系列轉換為 DataFrame?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板