python - 迭代组(Python pandas 数据框)

标签 python pandas iterator dataframe grouping

我想遍历按字符串或日期分组的组。

df = pd.DataFrame({'A': ['foo', 'bar'] * 3,
                   'B': ['me', 'you', 'me'] * 2,
                   'C': [5, 2, 3, 4, 6, 9]}) 
groups = df.groupby('A')

例如,在这段代码中,我按名称“foo”和“bar”分组,我可以使用循环遍历它们;

for name, group in groups:
   print name

我的问题是我需要在这个循环中运行另一个循环,并且每次我需要调用不同的组集。喜欢(假设组的大小为 n)

for name,group in groups:
   for name1 in range(name, name + 9):  # + 9 to get first 9 groups for every iteration`

因为 name 是一个字符串,所以我无法做到这一点。 简而言之,我只想要一种可以按数字访问组的方法,以便我可以轻松调用所需的组进行计算。 有点像

groups = df.group('A')
for i in range(0,n):
    print group(i)[] + group(i+1)[]  

所以如果我有以下组 [g1,g2,g3,g4,g5],我想成对地迭代调用它们,例如 [g1,g2]、[g2,g3]、[g3,g4] ... . 并且每次都取两组系列的交集。我正在寻找通过索引或某些编号来调用组 [g1,g2,..g5] 的方法。这样我就可以将它们用于循环操作。目前我知道调用组的唯一方法是通过组的名称,如上文示例“foo”和“bar”中所述。 我想要电源来执行以下操作:

for name,group in groups-1:
   print gb.get_group(name)
   print gb.get_group(name+1)

我知道这可能是一个简单的问题,但我已经为这部分苦苦挣扎了一段时间。我将不胜感激任何帮助。

最佳答案

.groupby() 对象有一个 .groups 属性,它返回索引的 Python 字典。在这种情况下:

In [26]: df = pd.DataFrame({'A': ['foo', 'bar'] * 3,
   ....:                    'B': ['me', 'you', 'me'] * 2,
   ....:                    'C': [5, 2, 3, 4, 6, 9]})

In [27]: groups = df.groupby('A')

In [28]: groups.groups
Out[28]: {'bar': [1L, 3L, 5L], 'foo': [0L, 2L, 4L]}

您可以按如下方式对其进行迭代:

keys = groups.groups.keys()
for index in range(0, len(keys) - 1):
    g1 = df.ix[groups.groups[keys[index]]]
    g2 = df.ix[groups.groups[keys[index + 1]]]
    # Do something with g1, g2

但是,请记住,使用 for 循环遍历 Pandas 对象通常比矢量操作慢。根据您需要完成的工作,如果需要快速完成,您可能想尝试其他方法。

关于python - 迭代组(Python pandas 数据框),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29642404/

相关文章:

python - 如何根据位于一个目录中的不同文件绘制不同的子图?

python - 使用数据框中的条件删除重复项

java - ognl.OgnlException : source is null for getProperty(null, "0")错误

Java 迭代器对 Next() 施加条件

python - pandas 数据框中按时间间隔分组

javascript - 从下拉菜单中逐页阅读 - 在第二页找不到下拉菜单

python - 如何找到 Pandas 数据框列中一组值之间的相关性

c# - 为什么在 C# 中有些迭代器比其他迭代器快?

python - 当所需元素尚不存在时,Selenium ActionChains

python - pandas DataFrame 在 bool 掩码上设置值