ホームページ >バックエンド開発 >Python チュートリアル >Pandas GroupBy マルチインデックス シリーズ出力を DataFrame に変換して戻す方法は?

Pandas GroupBy マルチインデックス シリーズ出力を DataFrame に変換して戻す方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-24 08:50:14309ブラウズ

How to Convert a Pandas GroupBy Multi-Index Series Output Back into a DataFrame?

Pandas GroupBy MultiIndex シリーズ出力からの行の取得

マルチインデックスを持つ DataFrame を指定すると、GroupBy 操作を実行してカウントすることができますまたは値を集計します。ただし、結果として得られる出力は階層インデックスを持つ Series であるため、生の行を表示することが困難になります。この記事では、この出力を元の行を含む DataFrame に変換する方法について説明します。

質問:

Pandas GroupBy マルチインデックス シリーズ出力を変換するにはどうすればよいですか。例:

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

を元のすべてのデータフレームを保持する別の DataFrame にコピーします。 rows?

答え:

Series を DataFrame に変換し直すための鍵は、階層インデックスを処理することです。ここでは 2 つのアプローチを示します。

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 から行を抽出できます。 multi-index シリーズは、すべての元のデータを含む DataFrame を出力および再構築します。

以上がPandas GroupBy マルチインデックス シリーズ出力を DataFrame に変換して戻す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。