将 Pandas Dataframe 拆分为 n 个相等的部分 + 1

Meh*_*Oua 6 python numpy pandas

我有一个包含 44150 行的熊猫数据框。

我想分成每个包含 100 行的子数据帧,除了最后一个必须包含 50 行。

我试过使用,numpy.array_split但它把它分成 392 个大小为 100 的数据帧和 50 个大小为 99 的数据帧。

有没有办法按照我想要的方式拆分它?

Abr*_*odj 6

您可以使用iloc和列表理解:

df = pd.DataFrame({
    'x':np.random.randn(44150),
    'y':np.random.randn(44150),
})

S = 100
N = int(len(df)/S)
frames = [ df.iloc[i*S:(i+1)*S].copy() for i in range(N+1) ]
Run Code Online (Sandbox Code Playgroud)

最后一个 DataFrame - 可以在其中找到frames[-1]- 有 50 行,而其他有 100 行。