如何解决如何遍历分组的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 举报,一经查实,本站将立刻删除。