GroupBy を使用して複数の列で DataFrame をグループ化すると、結果は多くの場合 MultiIndex Series になります。ただし、特定のシナリオでは、データを DataFrame 形式で戻す必要がある場合があります。この記事では、GroupBy の MultiIndex シリーズ出力を DataFrame に変換する方法を説明します。
次のサンプル DataFrame について考えます。
City Name 0 Seattle Alice 1 Seattle Bob 2 Portland Mallory 3 Seattle Mallory 4 Seattle Bob 5 Portland Mallory
複数の列で GroupBy を使用すると、出現回数をカウントできます。
g1 = df1.groupby(["Name", "City"]).count()
ただし、g1 の出力は MultiIndex ですシリーズ:
City Name Name City Alice Seattle 1 1 Bob Seattle 2 2 Mallory Portland 2 2 Seattle 1 1
これを DataFrame に変換し直すには、2 つのアプローチを利用できます:
方法 1: サフィックスの追加とインデックスのリセット
列名にサフィックスを追加し、 Index:
g1.add_suffix('_Count').reset_index()
これにより、Name、City、およびカウントを示す _Count の接尾辞が付いた 2 つの追加列の 3 つの列を持つ DataFrame が作成されます。
方法 2: DataFrame を使用するConstructor
または、DataFrame コンストラクターを.size() メソッドを使用して、出現回数をカウントし、インデックスをリセットします。
DataFrame({'count' : df1.groupby( [ "Name", "City"] ).size()}).reset_index()
このアプローチでは、Name、City、およびカウントを表す追加の列 count の 2 つの列を持つ DataFrame が作成されます。
以上がPandas GroupBy MultiIndex シリーズを DataFrame に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。