首頁 >後端開發 >Python教學 >如何展平 Pandas GroupBy MultiIndex DataFrame?

如何展平 Pandas GroupBy MultiIndex DataFrame?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-02 00:01:09326瀏覽

How to Flatten a Pandas GroupBy MultiIndex DataFrame?

將Pandas GroupBy MultiIndex 輸出轉換回DataFrame

在具有多個索引列的pandas DataFrame 上執行groupby 操作時,產生的結果object 是一個具有分層索引的DataFrame。如果您想將資料作為單獨的行進行訪問,這可能會很不方便。

這是一個簡單的範例:

df1 = pd.DataFrame({"City": ["Seattle", "Seattle", "Portland", "Seattle", "Seattle", "Portland"], "Name": ["Alice", "Bob", "Mallory", "Mallory", "Bob", "Mallory"]})

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

g1 的輸出是具有分層索引的DataFrame:

                  City  Name
Name    City
Alice   Seattle      1     1
Bob     Seattle      2     2
Mallory Portland     2     2
        Seattle      1     1

要將其轉換回具有單獨行的DataFrame,您可以使用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

或者,您可以使用size方法和reset_index來計算每個群組中的行數並建立一個新的DataFrame:

DataFrame({'count': df1.groupby(["Name", "City"]).size()}).reset_index()

這將建立一個具有單一索引的DataFrame專欄:

      Name      City  count
0    Alice   Seattle      1
1      Bob   Seattle      2
2  Mallory  Portland      2
3  Mallory   Seattle      1

您使用哪種方法取決於您的特定需求。

以上是如何展平 Pandas GroupBy MultiIndex DataFrame?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn