我必须创建一个函数,它将提供的数据帧拆分为所需大小的 block 。例如,如果数据帧包含 1111 行,我希望能够指定 400 行的 block 大小,并获得三个较小的数据帧,大小分别为 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)
最佳答案
您可以调用floor division序列的数量最多为数据帧中的行数,并将其用于groupby
将数据框分成大小相等的 block :
n = 400
for g, df in test.groupby(np.arange(len(test)) // n):
print(df.shape)
# (400, 2)
# (400, 2)
# (311, 2)
关于python - 根据长度将数据帧拆分为相对均匀的 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33367142/