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()重新排列一下索引就好了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容