我想知道是否有Python或Pandas函数近似于Ruby #each_slice方法。在这个例子中,Ruby #each_slice方法将获取数组或散列并将其分成100个组。
var.each_slice(100) do |batch|
# do some work on each batch
我正在尝试在Pandas数据帧上执行相同的操作。是否有Pythonic方法来完成同样的事情?
我已经查看了这个答案:Python equivalent of Ruby's each_slice(count)
然而,它已经过时并且不是熊猫特有的。我正在检查它,但我想知道是否有更直接的方法。
答案 0 :(得分:1)
没有内置方法,但你可以使用numpy的array_slice
,你可以将数据帧传递给它和切片数。
为了获得~100个大小的切片,你必须计算这个只是行数/ 100:
import numpy as np
# df.shape returns the dimensions in a tuple, the first dimension is the number of rows
np.array_slice(df, df.shape[0]/100)
这将返回尽可能均匀切片的数据框列表