Удалите значения NaT при вставке данных в mon go с помощью pymongo - PullRequest
1 голос
/ 25 мая 2020

Получите 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 does not support utcoffset

Как отправить эти данные в mongodb без NaT и оставить столбец пустым без преобразования в строку.

ожидаемые данные в mongodb:


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


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


1 Ответ

1 голос
/ 25 мая 2020

Вы можете преобразовать NaT в None, как показано ниже:

Если ваш df['date'] не является столбцом datetime, конвертируйте его в один.

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

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

Затем вы можете вставить это в mongo.

...