ホームページ  >  記事  >  バックエンド開発  >  Pandas GroupBy MultiIndex 出力を Series から DataFrame に変換する方法

Pandas GroupBy MultiIndex 出力を Series から DataFrame に変換する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-22 22:35:20133ブラウズ

How to Convert a Pandas GroupBy MultiIndex Output from Series to DataFrame?

Pandas GroupBy MultiIndex 出力を Series から DataFrame に変換する

次の DataFrame について考えます。

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

groupby( を使用してグループ化操作を実行した後) )、出力は次のように階層インデックス DataFrame です。以下:

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

print(g1)
                   City  Name
Name    City
Alice   Seattle      1     1
Bob     Seattle      2     2
Mallory Portland     2     2
        Seattle      1     1

目的の DataFrame 構造を取得するには、いくつかの方法があります。

サフィックスの追加とインデックスのリセット

これには、列にサフィックスを追加することが含まれます。名前と階層インデックスのリセット:

g1.add_suffix('_Count').reset_index()

print(
    pd.DataFrame({'City_Count': g1['City'],
                  'Name_Count': g1['Name']
                  })
)
          City_Count  Name_Count
Alice   Seattle      1           1
       Portland     2           2
Bob     Seattle      2           2
Mallory Portland     2           2
        Seattle      1           1

size() の使用メソッド

別のアプローチは、size() メソッドを使用して各グループの出現数をカウントし、インデックスをリセットすることです。

df1.groupby(['Name', 'City']).size().reset_index()

print(
    pd.DataFrame({'Name': g1.index.get_level_values(0),
                  'City': g1.index.get_level_values(1),
                  'Count': g1['City']
                  })
)
      Name      City  Count
0     Alice   Seattle      1
1       Bob   Seattle      2
2   Mallory  Portland      2
3   Mallory   Seattle      1

以上がPandas GroupBy MultiIndex 出力を Series から DataFrame に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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