我有一个DataFrame,其中有一些列,例如'n'列,还有一些行,例如'm'行。我想根据一个column(Column:'x')值对DataFrame行进行分组,而不是完全匹配column'x'值。我需要对附近的值进行分组。例如我的DataFrame将是这样的:
y yh x xw w Nxt
0 2987 3129 347 2092 1735.0 501
1 2715 2847 501 1725 1224.0 492
2 2419 2716 490 2196 1704.0 492
3 2310 2373 492 794 302.0 886
4 2309 2370 886 1012 126.0 492
5 2198 2261 497 791 299.0 886
6 2197 2258 886 1010 124.0 492
7 1663 2180 375 1092 600.0 1323
在上面的数据帧中,列“ x”值之间的差在20之间,那么我需要将它们分组到一个新的数据帧中,其余的可以避免。这里index = 1,2,3,5行可以是一个组,而index = 4,6行可以是另一个组,因为这些行“ x”列之间的差在20之间。我的预期输出应该是三个dataframes- df1:一个包含所有分组的行,而df2:则保留另一组行和'df3':其余行,如下所示:
df1:
y yh x xw w Nxt
1 2715 2847 501 1725 1224.0 492
2 2419 2716 490 2196 1704.0 492
3 2310 2373 492 794 302.0 886
5 2198 2261 497 791 299.0 886
df2:
y yh x xw w Nxt
4 2309 2370 886 1012 126.0 492
6 2197 2258 886 1010 124.0 492
df3:
y yh x xw w Nxt
0 2987 3129 347 2092 1735.0 501
7 1663 2180 375 1092 600.0 1323
我尝试了Groupby-apply和groupby-transform,但未能成功。如果有人能帮助我达到预期的效果,那将是很大的帮助,在此先感谢。
米脂
相关分类