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

时间:2019-01-17 21:29:12

标签: python pandas numpy

我有一个熊猫数据框,其中包含44150行。

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

我尝试使用 numpy.array_split ,但是它将其分为392个大小为100的数据帧和50个大小为99的数据帧。

反正有按照我想要的方式拆分它吗?

1 个答案:

答案 0 :(得分:3)

您可以使用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) ]

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