我想遍历按字符串或日期分组的组。
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
我的问题是我需要在这个循环中运行另一个循环,每次我需要调用不同的组集。like(假设组的大小为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]。。。。每次取两组级数的交集。我正在寻找通过索引或一些no来调用组[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 dict索引。在这种情况下:您可以按如下方式迭代:
但是,请记住,使用
for
循环在Pandas对象上迭代通常比向量操作慢。根据你需要做什么,如果需要快速,你可能想尝试其他方法。相关问题 更多 >
编程相关推荐