网站策划书中应包括市场竞争对手的信息,织梦小说网站模板下载,wordpress查询分页插件,定制企业网站建设制作文章目录 简介1. pandas loc 尾部插入方法loc 尾部插入的速度 2. open 方法open方法 处理csv的速度open方法 处理csv代码 简介
笔者在处理稍大型(几十万条)的csv文件时#xff0c;发现在csv文件中#xff0c;使用panda的loc方法进行拼接#xff0c;速度太过于缓慢。 笔者提… 文章目录 简介1. pandas loc 尾部插入方法loc 尾部插入的速度 2. open 方法open方法 处理csv的速度open方法 处理csv代码 简介
笔者在处理稍大型(几十万条)的csv文件时发现在csv文件中使用panda的loc方法进行拼接速度太过于缓慢。 笔者提出使用open方法处理完成后的数据每行以,进行分隔存储到文件中程序运行速度比上述方法快200多倍。
from tqdm import tqdm
import pandas as pd1. pandas loc 尾部插入方法
for _, row in tqdm(df.iterrows()):# 处理生成data列表new_df.loc[new_df.shape[0]] value
new_df.to_csv(new.csv, indexFalse)通常处理表格数据流程
一行一行的遍历原始表格数据在新的new_df的尾部一行一行插入处理完成的数据把new_df 保存到本地
上述流程在处理小文件时没有问题
但当处理几十万行的文件时随着程序运行代码运行速度会越来越慢。 有人会认为这个是因为大文件把内存占满了从而拖慢了程序的处理速度。 我想说的是但当内存是足够时每秒也才只能处理2000多条数据依然没有下述open方法快。 在我的数据上上述代码在进行pandas.DataFrame拼接时随着程度执行越来越慢最后每秒只能处理200条数据太过于慢了
loc 尾部插入的速度
使用pandas 尾部插入的实验 如上图表示在程序刚开始执行时处理了7647条数据用时2秒平均每秒处理2108条
然而随着程序的运行当程序运行2分钟后如下图所示程序处理了6万条数据程序的处理速度下降到每秒221条而且还在继续下降
2. open 方法
open方法 处理csv的速度
当换成使用文件读取的open函数后程序的处理速度一直可以保持在每秒处理 5万条数据 如上图所示处理完全部的66万条数据每秒处理5万多条用时12秒全部处理完毕。 这个方法用来处理大文件非常好 open方法 处理csv代码
csv 的数据是以,分隔故在文件中逐行写入以,分隔的数据即可甚至无需使用pandas包。
代码如下
with open(data.csv, w, encodingutf-8) as f:f.write(,.join(df.columns) \n)for _, row in tqdm(df.iterrows()):# 处理生成data列表...f.write(,.join(data) \n)