[英]Slice a dataframe based on a specific range repeated over a column in pandas
我有一个 dataframe ,其中一列有一个计数器。 计数器从 0 到 127 并重复。 dataframe 的开始和结束可以有切片计数器,例如第一行可以从 32 开始,但会在 127 结束,然后是 0-127 重复切片,最后一个切片可能突然结束,不一定是 127。如下所示,
32
33
.
.
127
0
1
.
.
127
0
1
.
.
127
0
1
.
15
有没有办法可以将 dataframe 分成不同的集合,每个集合包含 128 行?
好吧,如果总行数不是 128 的倍数,那么您将无法将 dataframe 分成子集,每个子集恰好包含 128 行。
但是将 dataframe 切片为 128 行是微不足道的,其中最后一个使用iloc
最多有128 行:
for i in range(0, len(df), 128):
subset = df.iloc[i:i+128]
# process subset...
如果你想根据计数器列进行切片,第一个和最后一个切片最多有 128 行,你可以使用 GroupBy:
groups = df.groupby((df['counter'] == 0).cumsum())
for i, g in groups:
print('Processing group', i)
subset = g
# process subset
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.