Pandas DataFrame Замените NaT на None

Вопросы и ответы
Вопрос: Я долго боролся с этим вопросом и пробовал разные методы. У меня есть простой DataFrame, как показано на рисунке, Я могу использовать код для замены NaN на None (не String "None"), [![dfTest2 = dfTest.where(pd.notnull(dfTest), None)][2]][2] Я поддерживаю, что NaT также классифицируется как "ноль", потому что следующее, Однако NaT не заменяется на None. Я искал

Вопрос:

Я долго боролся с этим вопросом и пробовал разные методы.

У меня есть простой DataFrame, как показано на рисунке,

enter image description here

Я могу использовать код для замены NaN на None (не String “None”),

[![dfTest2 = dfTest.where(pd.notnull(dfTest), None)][2]][2]

enter image description here

Я поддерживаю, что NaT также классифицируется как “ноль”, потому что следующее, enter image description here

Однако 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)

Оцените статью
Добавить комментарий