熊猫GROUPBY范围,允许重复

问题描述:

说我有一个数据帧,看起来像这样:熊猫GROUPBY范围,允许重复

char | num 
----------------- 
A  | 1 
B  | 2 
C  | 3 
D  | 4 
E  | 5 

有没有一种方法,使将使用一系列的GROUPBY对象说3“民”创建群组像这样:

组1:

char | num 
----------------- 
A  | 1 
B  | 2 
C  | 3 

组2:

char | num 
----------------- 
B  | 2 
C  | 3 
D  | 4 

第3组:

char | num 
----------------- 
C  | 3 
D  | 4 
E  | 5 

行显然会被复制,但是这是我要的结果。我可以想出一些蛮力的方法来实现这一点,但如果它在外面,我正在寻找一个优雅的解决方案。

+2

不知道,但你描述看起来像什么'pandas.DataFrame.rolling'将是一件好事。尽管我不知道你打算如何处理这些难以说服的团体。 –

pd.concat弄虚作假

n = len(df) - 2 
g = pd.concat([df.iloc[i: i + 3] for i in range(n)]).groupby(np.arange(n).repeat(3)) 

g.get_group(0) 

    char num 
0 A 1 
1 B 2 
2 C 3