当前位置: 首页 > 后端技术 > Python

Python爬虫数据合并:应该先在列表中合并,再传给pandas处理

时间:2023-03-26 01:34:06 Python

有疑问可以看pandas文档,不建议频繁使用append追加数据,而是使用concat连接,这可以提高效率。所以我想可能没有别的方法可以这样操作现有的DataFrame,但是在爬虫中,数据往往是批量采集的,所以应该在每个线程中转换成DataFrame,最后合并,或者附加list首先(扩展/附加)最后转换为DataFrame?于是自己测试了一下,发现结果列表处理比DataFrame的频繁转换效率高很多。所以,爬虫应该先用list来存储和更新数据,爬完之后再用pandas来处理。测试如下1.使用pandas直接转DataFrame,最后concat合并t=time.perf_counter()pd1=pd.concat([pd.DataFrame([[i,i,i,i]],columns=['0','1','2','3'])foriinrange(1000)],ignore_index=True)t=time.perf_counter()-tprint(pd1)print('Time-完成所有任务耗时:',t)输出:[1000行x4列]完成所有任务耗时:0.476084099999982。使用list合并,最后使用pandas直接转换为DataFramet=time.perf_counter()lst=[]foriinrange(1000):lst.extend([[i,i,i,i]])pd1=pd.DataFrame(lst,columns=['0','1','2','3'])t=time.perf_counter()-tprint(pd1)print('完成所有任务耗时:',t)输出:[1000行x4列]完成所有任务耗时:0.002777700000024197