如何忽略 max 中的 pd.NaT?

Qas*_*wed 3 max missing-data python-3.x python-datetime

简而言之:如何忽略pd.NaT列表中放入的内容max

import datetime
max([pd.NaT, datetime.datetime(1900, 1, 1), datetime.datetime(2000, 1, 1)])
Run Code Online (Sandbox Code Playgroud)

预期输出是Timestamp('2000-01-01 00:00:00'). 即使这个问题似乎是一个标准问题,除了这个非Pythonic的问题之外我找不到解决方案:

max(pd.DataFrame([pd.NaT, datetime.datetime(1900, 1, 1), datetime.datetime(2000, 1, 1)]).dropna()[0])
Run Code Online (Sandbox Code Playgroud)

小智 5

现在您正在使用 pyhton 的 max 函数。相反,您可以使用 pandas series max 来自动处理 NaT:

pd.Series([pd.NaT, datetime.datetime(1900, 1, 1), datetime.datetime(2000, 1, 1)]).max()
Run Code Online (Sandbox Code Playgroud)