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 サイトの他の関連記事を参照してください。