將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中文網其他相關文章!