python - 使用 pymongo 将数据插入 mongodb 时删除 NaT 值

标签 python pandas mongodb pymongo

有一个带有值的 df


name    date

tom    2019-12-10 07:44:03.733
mark   NaT

如果我尝试这个:


data = df.to_dict("records")

mydb.test.insert_many(data)

我收到此错误:

ValueError:NaTType 不支持 utcoffset

如何在不使用 NaT 的情况下将此数据发送到 mongodb,并保持列为空而不转换为字符串。

mongodb 中的预期数据:


{
_id:ObjectId(5db012b123a2a1cabcc12345),
name:tom,
date:2019-10-23T10:55:50.569+00:00
}


{
_id:ObjectId(5db012b123a2a1cabcc12346),
name:mark
}


最佳答案

您可以将 NaT 转换为 None,如下所示:

如果您的 df['date'] 不是 datetime 列,请将其转换为一列。

df['date'] = pd.to_datetime(df['date'])

df['date'] = df['date'].astype(object).where(df['date'].notnull(), None)

然后你可以将其插入到mongo中。

关于python - 使用 pymongo 将数据插入 mongodb 时删除 NaT 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62010085/

相关文章:

Windows Azure 管道中的 python setup.py build_ext

python - 计算数据帧每行之间的公共(public)列数以创建全对全矩阵

python - 通过 4 的项目数量错误,使用正则表达式提取时放置意味着 1

python - 如何获得两个 Pandas 数据帧的公共(public)索引?

python - 如何使用 pymongo 创建 MongoDB 时间序列集合

python - 使用 AWS 作为 MQTT 代理将 Raspberry Pi #1 链接到 Raspberry Pi #2

javascript - 如何使用组合框隐藏/显示表单

javascript - mongodb 将参数传递给集合 find

node.js - 使用 mongoose 检查储值

python - 如何从 Qt Designer 导入 UI