我有一个熊猫数据框,其中包含44150行。
我想分成几个子数据帧,每个子数据帧包含100行,但最后一个必须包含50行。
我尝试使用 numpy.array_split
,但是它将其分为392个大小为100的数据帧和50个大小为99的数据帧。
反正有按照我想要的方式拆分它吗?
答案 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行。