DataFrame存入Mongodb

先说结论

mongodb存入的数据类型是字典,所以只需要把dataframe格式转换成字典就可以了.
以本地csv文件为例:
In [4]:
import pandas as pd
data = pd.read_csv('/Users/runyi/Desktop/top50.csv')
data.head(5)
Out[4]:

Unnamed: 0 _id 昵称 日最大收益率 日最小收益率 交易胜率 盈亏比 风险度均值 累计净值
0 0 5f0ef7851e3f25a91137ad88 林.倚天剑 0.8822 -0.2166 0.6111 1.58 0.9933 9.865
1 1 5f0ef79b1e3f25a91137ad89 林** 0.7955 -0.3119 0.6575 1.86 1.0273 9.460
2 2 5f0ef7b11e3f25a91137ad8a 九月 0.7212 -0.3214 0.5342 1.61 0.9306 10.047
3 3 5f0ef7c51e3f25a91137ad8b 风轻云淡定 0.3973 -0.0734 0.6111 4.35 0.4472 7.385
4 4 5f0ef7e01e3f25a91137ad8c 黑色闪电 0.2510 -0.2102 0.6667 2.16 0.5873 7.665

简单粗暴

import pymongo
client = pymongo.MongoClient('localhost',27017)#登陆mongdb
collection = client['实盘大赛(清洗后)']['轻量组top50']#创建要存入的表
collection.insert_many(data.to_dict(orient='record'))#df改为dict格式存入
client.close()#关闭

如果是json文件

转换为python对象再存入:
import json  
import pymongo  
client = pymongo.MongoClient('localhost',27017)#登陆mongdb  
collection = client['实盘大赛(清洗后)']['轻量组top50']#创建要存入的表  
data = json.loads(json文件路径).values()#转换  
collection.insert_many(data)#存入  
client.close()

如果需要传入mongodb用户名和密码

修改一下client语句就行
client = pymongo.MongoClient('mongodb://用户名:密码@IP:port')
依次填入用户名,密码,ip,port四个参数