600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > python提高导入数据库速度_提高从MongoDB导入数据速度

python提高导入数据库速度_提高从MongoDB导入数据速度

时间:2021-06-01 19:36:50

相关推荐

python提高导入数据库速度_提高从MongoDB导入数据速度

Python编写爬虫,用的是Scrapy框架,将数据存储到了本机的MongoDB数据库上。导数据的时候发现数据的转化,速度有点慢。

from pymongo import MongoClient

#建立MongoDB数据库连接

client = MongoClient('localhost',27017)

#连接所需数据库,test为数据库名

db=client.TrimPage

#连接所用集合,也就是我们通常所说的表,collection为表名

collection = 'Trimcodename2'

table=db[collection]

#查找集合中所有数据

result=[]

for item in table.find():

result.append(item)

很快,我就得到了一个叫result的list

接下来,我想把这些数据保存到一个Pandas的DataFrame里,保存的过程中顺便进行处理。下面的代码是根据网上现有代码进行修改。主要的思路是先建一个DataFrame对象,再通过append函数添加数据。

import pandas as pd

df = pd.DataFrame()

for i in result:

a=i['id']

b = i['content'].replace('\n','').replace('\xa0','').replace('\r','').replace('\t','').replace(' ','')

df = df.append([[a,b]])

结果遇到了一个坑,数据跑了一个多小时都没跑完。我强行结束发现,只进行了一般。

于是我尝试了一个直接导入。

df2=pd.DataFrame(result)

结果竟然成功了!!!!几秒钟!!!

但是还有一步处理数据的过程,是这步比较花时间吗?

我继续尝试使用DataFrame的map函数,看看会消耗多少时间。

df2['content'] = df2['content'].map(lambda x: x.replace('\n','').\

replace('\xa0','').replace('\r','').replace('\t','').replace(' ','') )

还是瞬间!!!

然后这个故事告诉我们,尽量不要用循环!!

郁闷的我决定记录下这个一个半小时的教训。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。