【问题标题】:How to iterate through grouby object in Panda [duplicate]如何在 Pandas 中遍历 groupby 对象[重复]
【发布时间】:2018-08-06 11:05:19
【问题描述】:

我基于两列按熊猫框架分组,并将第三列的总和添加到此 groupby 对象。它工作得很好,但我想弄清楚我应该如何遍历这个返回的对象。

下面是我用来分组和求和的命令。

groupby_abundance=df.groupby(['mi','Organism_name'])[['Rep_Abun']].sum()   
print groupby_abundance

这是上面打印的输出。

                         Rep_Abun
mi     Organism_name          
mi1023 Daylily               9
mi1030 Maize                642
        Kniphofia            17
        Nymphaea            133
mi1083 Liriope               6
mi1097 Kniphofia             6
mi1098 Coconut              95

我想遍历groupby_abundance

感谢您提前提供帮助。

【问题讨论】:

  • 我想遍历 groupby_abundance。 ... 做什么?你想要的结果是什么?
  • @Parfait 我想遍历对象并创建一个字典。例如,d[(mi1023-黄花菜)]= 9

标签: python pandas pandas-groupby


【解决方案1】:

这是一种方法。我使用了最少的数据,但可以针对您的用例扩展逻辑。

import pandas as pd

df = pd.DataFrame([['a', 1], ['b', 2], ['a', 3], ['c', 4], ['d', 5],
                   ['a', 6], ['e', 7], ['b', 8], ['d', 9], ['c', 10]],
                  columns=['A', 'B'])

g = df.groupby('A')['B'].sum()

for idx in g.index:
    print(idx, g[idx])

# a 10
# b 10
# c 14
# d 14
# e 7

【讨论】:

    【解决方案2】:

    编辑:这里groupby_abundance = df.groupby(['mi','Organism_name'])

    每个分组数据都是一个子数据框,您可以在其中使用可用于完整数据框的所有方法。

    ## every group is a sub-data frame
    ## we can use all methods normally as we do on a data frame
    ## that's how you can access the columns
    
    for index, group in groupby_abundance:
         print(group.head())
    

    【讨论】:

    • 我得到以下错误。 ValueError:解包的值太多
    • 对不起,我的错。添加说明。
    猜你喜欢
    • 1970-01-01
    • 2019-10-18
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    • 2019-07-19
    • 2015-09-15
    • 2014-10-17
    • 1970-01-01
    相关资源
    最近更新 更多