我目前正在以通常的方式迭代groupby对象
Parent
是否有一种简单的方法可以迭代遍历groupby中的每个第n组?例如,第1组,第4组,第7组等。
这样做的一种方法是
for key, df_reduced in df.groupby(level='level_key'):
是否有更简洁的方法来做到这一点,例如。一个标准的python列表循环我将做的每一个项目
counter = 0
for key, df_reduced in df.groupby(level='level_key'):
counter += 1
counter = counter % 3
if counter != 0:
continue
答案 0 :(得分:3)
您可以尝试GroupBy.nth
GroupBy.nth(n,dropna = None)[来源] 如果n是int,则从每个组中取第n行,如果n是int列表,则从行的子集中获取。
在groupby中指定as_index = False会保留原始索引。
proxy_pass
输出
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 1, 2, 1, 2],'B': [np.nan, 2, 3, 4, 5]}, columns=['A', 'B'])
print '\n', df.groupby('A', as_index=False).nth(1)
print '\n', df.groupby('A', as_index=False).nth(2)
print '\n', df.groupby('A', as_index=False).nth(0)