美文网首页
python通过pandas.read_csv()的chunsi

python通过pandas.read_csv()的chunsi

作者: 倪桦 | 来源:发表于2022-05-27 14:12 被阅读0次

面对动辄几十G上百G的大型数据表文件,如果使用pandas的read_csv一次性读取处理(比如数据分选),该操作会一次性消耗服务器大量的硬件资源(可能面临内存溢出),所以就非常有必要使用chunksize对数据按行切块进行处理。参数 chunksize 通过指定每次读取多少⾏来读取⼤数据⽂件,返回的是⼀个可迭代对象TextFileReader。

with pd.read_csv("./outfile.txt",sep='\t',chunksize=100) as reader_iter: #
    open(f'my_csv.txt', 'w').close() #新建一个空文件,后续被用以追加的方式写入数据
    for i,e in enumerate(reader_iter,1):
        print(">>>>>>>>>>>>>>>>>>>>>>>",i) #显示当前处理的是第i个chunk
        e.iloc[:,0] = e.iloc[:,0].str.replace('_','+')
        e.iloc[:,1] = round(e.iloc[:,1] + 1 ,2)
        e["chunk.no"] = str(i)
        print(e)
        if i==1:
            e.to_csv('my_csv.txt', mode='a', header=True,sep='\t') #如果处理的是第一个chunk,则向文件写出表头
        else:
            e.to_csv('my_csv.txt', mode='a', header=False,sep='\t') #后续处理的chunk向文件追加写入不含表头数据

相关文章

网友评论

      本文标题:python通过pandas.read_csv()的chunsi

      本文链接:https://www.haomeiwen.com/subject/wxbuprtx.html