如何打印 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

原文由 user3465658 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 625
1 个回答

简单地做:

 grouped_df = df.groupby('A')

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


弃用通知ix 在0.20.0中被弃用

这也有效,

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

原文由 Surya 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题