Вопрос:
Я долго боролся с этим вопросом и пробовал разные методы.
У меня есть простой DataFrame, как показано на рисунке,
Я могу использовать код для замены NaN на None (не String “None”),
[![dfTest2 = dfTest.where(pd.notnull(dfTest), None)][2]][2]
Я поддерживаю, что NaT также классифицируется как “ноль”, потому что следующее,
Однако NaT не заменяется на None.
Я искал ответы, но мне не повезло. Кто-нибудь может помочь?
Заранее спасибо.
Лучший ответ:
Сделайте dtype object
dfTest2 = pd.DataFrame(dict(InvoiceDate=pd.to_datetime([‘2017-06-01’, pd.NaT]))) dfTest2.InvoiceDate.astype(object).where(dfTest2.InvoiceDate.notnull(), None) 0 2017-06-01 00:00:00 1 None Name: InvoiceDate, dtype: object Ответ №1
Сделайте тип столбца первым как str
dfTest2.InvoiceDate = dfTest2.InvoiceDate.astype(str)
затем сравните его непосредственно с “NaT” и замените его на None
dfTest2.InvoiceDate = dfTest2.InvoiceDate.apply(lambda x : None if x==»NaT» else x)