How to loop over grouped Pandas dataframe?(如何循环分组的 Pandas 数据框?)
问题描述
数据帧:
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
我正在尝试遍历聚合数据,但出现错误:
I'm trying to just loop over the aggregated data, but I get the error:
ValueError:解包的值太多
ValueError: too many values to unpack
@EdChum,这是预期的输出:
@EdChum, here's the expected output:
c_os_family_ss
l_customer_id_i
131572 Windows 7,Windows 7,Windows 7,Windows 7,Window...
135467 Windows 7,Windows 7,Windows 7,Windows 7,Window...
c_os_major_is
l_customer_id_i
131572 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...
135467 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...
输出不是问题,我希望循环遍历每个组.
The output is not the problem, I wish to loop over every group.
推荐答案
df.groupby('l_customer_id_i').agg(lambda x: ','.join(x))
确实已经返回一个数据框,所以你不能再循环组了.
df.groupby('l_customer_id_i').agg(lambda x: ','.join(x))
does already return a dataframe, so you cannot loop over the groups anymore.
一般:
df.groupby(...)
返回一个GroupBy
对象(DataFrameGroupBy 或 SeriesGroupBy),通过这个,您可以遍历组(如文档此处中所述).您可以执行以下操作:
df.groupby(...)
returns aGroupBy
object (a DataFrameGroupBy or SeriesGroupBy), and with this, you can iterate through the groups (as explained in the docs here). You can do something like:
grouped = df.groupby('A')
for name, group in grouped:
...
当您在 groupby 上应用函数时,在您的示例中 df.groupby(...).agg(...)
(但这也可以是 transform
, apply
, mean
, ...),你组合应用函数的结果将不同的组放在一个数据框中(groupby 的split-apply-combine"范式的应用和组合步骤).因此,其结果将始终是 DataFrame(或 Series,具体取决于应用的功能).
When you apply a function on the groupby, in your example df.groupby(...).agg(...)
(but this can also be transform
, apply
, mean
, ...), you combine the result of applying the function to the different groups together in one dataframe (the apply and combine step of the 'split-apply-combine' paradigm of groupby). So the result of this will always be again a DataFrame (or a Series depending on the applied function).
这篇关于如何循环分组的 Pandas 数据框?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何循环分组的 Pandas 数据框?


- 计算测试数量的Python单元测试 2022-01-01
- 检查具有纬度和经度的地理点是否在 shapefile 中 2022-01-01
- 使用 Cython 将 Python 链接到共享库 2022-01-01
- 使用公司代理使Python3.x Slack(松弛客户端) 2022-01-01
- CTR 中的 AES 如何用于 Python 和 PyCrypto? 2022-01-01
- 我如何卸载 PyTorch? 2022-01-01
- YouTube API v3 返回截断的观看记录 2022-01-01
- 如何使用PYSPARK从Spark获得批次行 2022-01-01
- ";find_element_by_name(';name';)";和&QOOT;FIND_ELEMENT(BY NAME,';NAME';)";之间有什么区别? 2022-01-01
- 我如何透明地重定向一个Python导入? 2022-01-01