根据长度将数据帧分割成相对均匀的块

2023-11-23

我必须创建一个函数,将提供的数据帧分割成所需大小的块。例如,如果数据帧包含 1111 行,我希望能够指定 400 行的块大小,并获得大小分别为 400、400 和 311 的三个较小的数据帧。是否有方便的函数来完成这项工作?存储和迭代切片数据帧的最佳方法是什么?

示例数据框

import numpy as np
import pandas as pd

test = pd.concat([pd.Series(np.random.rand(1111)), pd.Series(np.random.rand(1111))], axis = 1)

您可以采取楼层划分序列的数量最多为数据帧中的行数,并用它来groupby将数据帧分割成大小相等的块:

n = 400
for g, df in test.groupby(np.arange(len(test)) // n):
    print(df.shape)
# (400, 2)
# (400, 2)
# (311, 2)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据长度将数据帧分割成相对均匀的块 的相关文章

随机推荐