获取 Pandas 中多个日期时间列的最小值

Ily*_*tov 6 python dataframe pandas

我有以下数据框

df = pd.DataFrame({
    'DATE1': ['NaT', 'NaT', '2010-04-15 19:09:08+00:00', '2011-01-25 15:29:37+00:00', '2010-04-10 12:29:02+00:00', 'NaT'],
    'DATE2': ['NaT', 'NaT', 'NaT', 'NaT', '2014-04-10 12:29:02+00:00', 'NaT']})
df.DATE1 = pd.to_datetime(df.DATE1)
df.DATE2 = pd.to_datetime(df.DATE2)
Run Code Online (Sandbox Code Playgroud)

我想创建一个新列,其两列中的最小值(忽略 NaT)如下所示:

df.min(axis=1)
0   NaN
1   NaN
2   NaN
3   NaN
4   NaN
5   NaN
dtype: float64
Run Code Online (Sandbox Code Playgroud)

如果我从每个单元格中删除时区信息( )+00:00,那么就会产生所需的输出,如下所示:

0                   NaT
1                   NaT
2   2010-04-15 19:09:08
3   2011-01-25 15:29:37
4   2010-04-10 12:29:02
5                   NaT
dtype: datetime64[ns]
Run Code Online (Sandbox Code Playgroud)

为什么添加时区信息会破坏该功能?我的数据集有时区,因此我需要知道如何删除它们作为解决方法。

小智 1

奇怪的。看起来像一个错误。您可以保留时区格式并使用它。

df.apply(lambda x: x.min(),axis=1)
0                         NaT
1                         NaT
2   2010-04-15 19:09:08+00:00
3   2011-01-25 15:29:37+00:00
4   2010-04-10 12:29:02+00:00
5                         NaT
dtype: datetime64[ns, UTC]
Run Code Online (Sandbox Code Playgroud)