有没有简单的方法可以手动遍历现有的熊猫groupby对象?

时间:2019-07-30 07:56:44

标签: python-3.x pandas pandas-groupby iterable manual-testing

是否有一种简单的方法来手动遍历现有 pandas groupby个对象?

import pandas as pd

df = pd.DataFrame({'x': [0, 1, 2, 3, 4], 'category': ['A', 'A', 'B', 'B', 'B']})
grouped = df.groupby('category')

在应用程序中,随后发生for name, group in grouped:循环。对于手动测试,我想做类似group = grouped[0]的事情并在for循环中运行代码。不幸的是,这不起作用。我能找到的最好的东西(here)是

group = df[grouped.ngroup()==0]

依赖于原始DataFrame而不依赖groupby-Object,因此不是最佳imo。

1 个答案:

答案 0 :(得分:1)

任何可迭代的对象(此处为GroupBy对象)都可以转换为迭代器:

group_iter = iter(grouped)

下面的行等同于选择第一组(由0索引):

name, group = next(group_iter)

要获得下一组,只需重复:

name, group = next(group_iter)

依此类推...


来源:https://treyhunner.com/2018/02/python-range-is-not-an-iterator/