3 回答

TA贡献1853条经验 获得超6个赞
我想做同样的事情,首先遇到拆分问题,然后遇到安装熊猫0.15.2的问题,所以我回到原来的版本,并编写了一个运行良好的小函数。希望对您有所帮助!
# input - df: a Dataframe, chunkSize: the chunk size
# output - a list of DataFrame
# purpose - splits the DataFrame into smaller of max size chunkSize (last is smaller)
def splitDataFrameIntoSmaller(df, chunkSize = 10000):
listOfDf = list()
numberChunks = len(df) // chunkSize + 1
for i in range(numberChunks):
listOfDf.append(df[i*chunkSize:(i+1)*chunkSize])
return listOfDf

TA贡献1805条经验 获得超9个赞
请注意,这np.array_split(df, 3)会将数据帧拆分为3个子数据帧,而splitDataFrameIntoSmaller(df, chunkSize = 3)每chunkSize行将数据帧拆分一次。
例:
df = pd.DataFrame([1,2,3,4,5,6,7,8,9,10,11], columns=['TEST'])
df_split = np.array_split(df, 3)
您将获得3个子数据帧:
df_split[0] # 1, 2, 3, 4
df_split[1] # 5, 6, 7, 8
df_split[2] # 9, 10, 11
带有:
df_split2 = splitDataFrameIntoSmaller(df, chunkSize = 3)
您将获得4个子数据帧:
df_split2[0] # 1, 2, 3
df_split2[1] # 4, 5, 6
df_split2[2] # 7, 8, 9
df_split2[3] # 10, 11
希望我是对的,希望这是有用的。
添加回答
举报