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")