pandas 将dataframe切成小的dataframe

在处理数据量较大的文件时,如果一次性将文件读入后执行操作会比较慢。读取文件时可以有两种方式:
1、指定chunksize分块读取文件
2、指定iterator=True
针对已经读进内存的数据,可以对dataframe做切分
找了一圈没找到现成的函数,虽然我觉得一定有。。。
把我自己写的一个小切片函数附在这里,仅作记录,需要自取

def splitdf(df,num):
    linenum = math.floor(len(df)/num)
    pdlist = []
    for i in range(num):
        
        pd1 = df[i*linenum:(i+1)*linenum]
        pdlist.append(pd1)
#         print(len(pd1))
    pd1 =  df[(num-1)*linenum:len(df)] 
    pdlist.append(pd1)
    return pdlist

后续:事实证明切分不会加快速度,反而还会慢,因为内存的负担更重了,emmmm
测试下来还是用chunksize分快读取数据最靠谱,不过在使用每个块时,除了第一块后面的索引会有问题,使用reset_index()重新排列一下索引就好了

你可能感兴趣的:(pandas 将dataframe切成小的dataframe)