分割大熊猫数据框

我有423244行的大型数据框。我想将其拆分为4。我尝试了以下给出错误的代码?ValueError: array split does not result in an equal division


for item in np.split(df, 4):

    print item

如何将此数据帧分为4组?


叮当猫咪
浏览 557回答 3
3回答

墨色风雨

我想做同样的事情,首先遇到拆分问题,然后遇到安装熊猫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

Cats萌萌

请注意,这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, 4df_split[1] # 5, 6, 7, 8df_split[2] # 9, 10, 11带有:df_split2 = splitDataFrameIntoSmaller(df, chunkSize = 3)您将获得4个子数据帧:df_split2[0] # 1, 2, 3df_split2[1] # 4, 5, 6df_split2[2] # 7, 8, 9df_split2[3] # 10, 11希望我是对的,希望这是有用的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python