groupbyオブジェクトを印刷する方法 質問する

groupbyオブジェクトを印刷する方法 質問する

Pandas でグループ化した結果を出力したい。

データフレームがあります:

import pandas as pd
df = pd.DataFrame({'A': ['one', 'one', 'two', 'three', 'three', 'one'], 'B': range(6)})
print(df)

       A  B
0    one  0
1    one  1
2    two  2
3  three  3
4  three  4
5    one  5

「A」でグループ化した後に印刷すると、次のようになります。

print(df.groupby('A'))

<pandas.core.groupby.DataFrameGroupBy object at 0x05416E90>

グループ化されたデータフレームを印刷するにはどうすればいいでしょうか?

私が行った場合:

print(df.groupby('A').head())

グループ化されていないかのようにデータフレームを取得します。

             A  B
A                
one   0    one  0
      1    one  1
two   2    two  2
three 3  three  3
      4  three  4
one   5    one  5

私は次のようなものを期待していました:

             A  B
A                
one   0    one  0
      1    one  1
      5    one  5
two   2    two  2
three 3  three  3
      4  three  4

ベストアンサー1

単純に以下を実行します:

grouped_df = df.groupby('A')

for key, item in grouped_df:
    print(grouped_df.get_group(key), "\n\n")

非推奨のお知らせ: 0.20.0 で非推奨にixなりました

これも有効です。

grouped_df = df.groupby('A')    
gb = grouped_df.groups

for key, values in gb.iteritems():
    print(df.ix[values], "\n\n")

選択的なキーのグループ化:key_list_from_gb次のように、の中に必要なキーを挿入しますgb.keys()。 たとえば、

gb = grouped_df.groups
gb.keys()

key_list_from_gb = [key1, key2, key3]

for key, values in gb.items():
    if key in key_list_from_gb:
        print(df.ix[values], "\n")

おすすめ記事