小编Bun*_*nny的帖子

迭代组(Python pandas dataframe)

我想迭代按字符串或日期分组的组.

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

例如,在这段代码中,我有一个名为'foo'和'bar'的组,我可以使用它们循环它们;

for name, group in groups:
   print name
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

所以,如果我有以下组[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) …
Run Code Online (Sandbox Code Playgroud)

python grouping iterator dataframe pandas

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

dataframe ×1

grouping ×1

iterator ×1

pandas ×1

python ×1