是否有一个Pandas等同于each_slice来操作数据帧

时间:2014-08-06 19:57:17

标签: python pandas

我想知道是否有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)

然而,它已经过时并且不是熊猫特有的。我正在检查它,但我想知道是否有更直接的方法。

1 个答案:

答案 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)

这将返回尽可能均匀切片的数据框列表