Python 熊猫按范围分组,允许重复
假设我有一个如下所示的数据帧:Python 熊猫按范围分组,允许重复,python,pandas,Python,Pandas,假设我有一个如下所示的数据帧: char | num ----------------- A | 1 B | 2 C | 3 D | 4 E | 5 有没有一种方法可以创建一个groupby对象,该对象将使用范围为3的“num”来创建如下组: char | num ----------------- A | 1 B | 2 C | 3 D | 4 E | 5 第一组: char |
char | num
-----------------
A | 1
B | 2
C | 3
D | 4
E | 5
有没有一种方法可以创建一个groupby对象,该对象将使用范围为3的“num”来创建如下组:
char | num
-----------------
A | 1
B | 2
C | 3
D | 4
E | 5
第一组:
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
。虽然我不知道你打算对这么难说的群体做什么。