使用 PyMongo
将 pandas DataFrame 最快地插入到 mongodb 中的方法是什么?
尝试
db.myCollection.insert(df.to_dict())
出现错误
InvalidDocument: 文档必须只有字符串键,该键为Timestamp('2013-11-23 13:31:00', tz=None)
db.myCollection.insert(df.to_json())
出现了错误
TypeError: 'str'对象不支持项目分配
db.myCollection.insert({id: df.to_json()})
出现了错误
InvalidDocument: 文档必须只有字符串键,该键是 <内置函数id>
df
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 150 entries, 2013-11-23 13:31:26 to 2013-11-23 13:24:07
Data columns (total 3 columns):
amount 150 non-null values
price 150 non-null values
tid 150 non-null values
dtypes: float64(2), int64(1)
date
、amount
、price
和tid
。tid
应该是一个唯一的字段。 - Nyxynyxrecords = json.loads(df.to_json(orient='records'))
,结果将会是这样的:[{'c1': 1, 'c2': 1},{'c1': 2, 'c2': 2},{'c1': 3, 'c2': 3}]
,然后只需使用db.coll.insert_many(records)
即可。另外,使用df.to_dict('recoreds')
可能会遇到Type error
的问题。 - Ferris