次の 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() メソッドを使用して各グループの出現数をカウントし、インデックスをリセットすることです。
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 サイトの他の関連記事を参照してください。