【问题标题】:How to preview rows after using .groupby() on a Pandas df/series如何在 Pandas df/series 上使用 .groupby() 后预览行
【发布时间】:2014-06-13 19:32:36
【问题描述】:

使用df.groupby(df.index.month) 后我想预览我的DataFrame 不幸的是.head 删除了组格式,df['col'][:3] 返回以下错误:

---------------------------------------------------------------------------
NotImplementedError                       Traceback (most recent call last)
<ipython-input-154-6783abceafb8> in <module>()
      1 test= sve_DOC
      2 test = test.groupby(test.index.month)
----> 3 print test['DOC_mg/L'][:3]

C:\Users\AppData\Local\Enthought\Canopy32\User\lib\site-packages\pandas\core\groupby.pyc in __getitem__(self, key)
    487 
    488     def __getitem__(self, key):
--> 489         raise NotImplementedError
    490 
    491     def _make_wrapper(self, name):

NotImplementedError: 

有没有办法解决这个问题?

更新:检查组后,我想根据@chrisb 的帖子test.get_group(5)['col'].median() 对我所做的数据进行一些操作

【问题讨论】:

  • 你想预览每个组的一部分吗?还是只是前 N (3) 组?
  • @chrisb 老实说,我不确定.groupby() 是如何工作的,所以我只是想看看。使用@user2600939 的方法,我发现我基本上有 12 个数据帧。你知道我如何索引它们吗? print test[1] 在循环中使用时有效,但在单独使用时无效。
  • 不清楚您要预览什么...
  • @AndyHayden 我想查看前几行和列标题,例如在DataFrame 上使用.head(),以检查groupby 对象是否组织正确。 .get_group().group.keys() 原来是我需要的。

标签: python python-2.7 pandas


【解决方案1】:

这样的? gb 是 GroupBy 对象。这将打印前 3 组中的前 5 行。

In [230]: gb = df.groupby(df.index.month)

In [231]: for k in gb.groups.keys()[:3]:
     ...:     print gb.get_group(k)[:5]

【讨论】:

  • 完美,这正是我所追求的。我没有意识到数据是按原样移动的,否则我的问题将是如何访问不同的组以及这些组中的数据。检查组后,我想根据您的帖子test.get_group(5)['col'].median() 对我所做的数据进行一些操作
【解决方案2】:

你可以循环测试

test = df.groupby("columnTitle")
for each in test:
    print each[0] #columnTitle value
    print each[1] #corresponding df equivalent of df[df['columnTitle']==each[0]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-18
    • 2020-12-18
    • 2022-01-09
    • 2023-01-23
    • 2018-07-06
    • 2021-12-24
    • 1970-01-01
    • 2012-05-09
    相关资源
    最近更新 更多