微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何循环分组的 Pandas 数据框?

如何解决如何循环分组的 Pandas 数据框?

df.groupby('l_customer_id_i').agg(lambda x: ','.join(x))确实已经返回了一个数据框,因此您不能再循环遍历这些组。

一般来说:

  • df.groupby(...)返回一个GroupBy对象(DataFrameGroupBy 或 SeriesGroupBy),通过它,您可以遍历组(如此处的文档中所述。您可以执行以下操作:

    grouped = df.groupby('A')
    

    for name, group in grouped: …

  • 当您在 groupby 上应用函数时,在您的示例中df.groupby(...).agg(...)(但这也可以是transform, apply, mean, …),您 到不同组的结果组合在一起(应用和组合步骤groupby 的’split-apply-combine’范式)。因此,此结果将始终再次成为 DataFrame(或 Series 取决于应用的功能)。

解决方法

数据框:

  c_os_family_ss c_os_major_is l_customer_id_i
0      Windows 7                         90418
1      Windows 7                         90418
2      Windows 7                         90418

代码:

print df
for name,group in df.groupby('l_customer_id_i').agg(lambda x: ','.join(x)):
    print name
    print group

我正在尝试遍历聚合数据,但出现错误:

ValueError:解包的值太多

@EdChum,这是预期的输出:

                                                    c_os_family_ss  \
l_customer_id_i
131572           Windows 7,Windows 7,Window...
135467           Windows 7,Window...

                                                     c_os_major_is
l_customer_id_i
131572,...
135467,...

输出不是问题,我希望遍历每个组。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。