熊猫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
行显然会被复制,但是这是我要的结果。我可以想出一些蛮力的方法来实现这一点,但如果它在外面,我正在寻找一个优雅的解决方案。
答
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
不知道,但你描述看起来像什么'pandas.DataFrame.rolling'将是一件好事。尽管我不知道你打算如何处理这些难以说服的团体。 –