当前位置: 首页 > 面试题库 >

使用PyMongo将Pandas Dataframe插入mongodb

萧业
2023-03-14
问题内容

使用插入pandas DataFrame到mongodb的最快方法是什么PyMongo

尝试次数

db.myCollection.insert(df.to_dict())

给出了一个错误

InvalidDocument: documents must have only string keys, the key was Timestamp('2013-11-23 13:31:00', tz=None)

 db.myCollection.insert(df.to_json())

给出了一个错误

TypeError: 'str' object does not support item assignment

 db.myCollection.insert({id: df.to_json()})

给出了一个错误

InvalidDocument: documents must have only string a keys, key was <built-in function 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)

问题答案:

我怀疑是否有 最快 简单的 方法。如果您不担心数据转换,可以

>>> import json
>>> df = pd.DataFrame.from_dict({'A': {1: datetime.datetime.now()}})
>>> df
                           A
1 2013-11-23 21:14:34.118531

>>> records = json.loads(df.T.to_json()).values()
>>> db.myCollection.insert(records)

但是,如果您尝试将数据加载回,则会得到:

>>> df = read_mongo(db, 'myCollection')
>>> df
                     A
0  1385241274118531000
>>> df.dtypes
A    int64
dtype: object

所以你必须将“A” columnt回datetimeS,以及所有不intfloatstr字段您DataFrame。对于此示例:

>>> df['A'] = pd.to_datetime(df['A'])
>>> df
                           A
0 2013-11-23 21:14:34.118531


 类似资料:
  • 问题内容: 我正在尝试使用pymongo模块从URL中提取一个JSON文件并将其按原样发送到mongoDB。 我有以下代码 执行此操作后,出现此错误,引发TypeError(“ documents must be a non-empty list”)TypeError:文档必须为非空列表 理想情况下,我希望能够从url中提取json并更新mongoDB,因为此json文件每周都会更新。谢谢 问题答

  • 喂 我有一个文档,看起来像这样: 我尝试使用$push添加另一个街道文档,它错误地出现: pymongo.errors。WriteError:字段“地址”必须是数组,但在文档{_id:ObjectId('6049e88657e43d8801197c72')}中属于object类型 我正在使用的代码: 没有制作地址簿或任何东西,只是编辑它,这样它对没有上下文的人来说更有意义。 我想要的输出是文档如下

  • 问题内容: 我在Python中有一个JSON对象。我正在使用Python DB-API和SimpleJson。我正在尝试将json插入MySQL表中。 目前出现错误,我相信这是由于JSON对象中的单引号引起的。 如何使用Python将JSON对象插入MySQL? 这是我收到的错误消息: 另一个错误供参考 这是我正在使用http://pastebin.com/q5QSfYLa的代码的链接 问题答案:

  • 我现在有北京时间的字符串 通过datetime.datetime.strptime(2023-12-25 10:31:32, "%Y-%m-%d %H:%M:%S")转换,pymongo插入到mongodb。mongodb默认插入的是utc时间的,怎么才能插入是北京时间的?

  • 问题内容: 我目前正在开发一个网站,我需要根据用户执行的操作来动态加载页面。 示例:如果用户单击“设置”按钮,则ajax函数将从外部页面加载该代码,并将其放入带有标签“设置”的div中。 这是我用来发出Ajax请求的代码: 这是第一个代码片段将ajax结果放入的位置: 该代码是从此处的函数调用的: 这是ajax函数将放入div 的html : 我想知道是否有一种方法也可以执行ajax函数返回的ja

  • 我知道如何使用滑翔将图像插入到常规ImageView中 (