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

标签 python pandas dataframe

我有以下数据框

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)

我想创建一个新列,在两列中具有最小值(忽略 NaT),如下所示:
df.min(axis=1)
0   NaN
1   NaN
2   NaN
3   NaN
4   NaN
5   NaN
dtype: float64

如果我从每个单元格中删除时区信息( +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]

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

最佳答案

这是个好问题,应该是 bug这里有时区

df.apply(lambda x : np.max(x),1)
0                         NaT
1                         NaT
2   2010-04-15 19:09:08+00:00
3   2011-01-25 15:29:37+00:00
4   2014-04-10 12:29:02+00:00
5                         NaT
dtype: datetime64[ns, UTC]

关于python - 获取 Pandas 中多个日期时间列的最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61090699/

相关文章:

python - 在一百万条记录上使用 pandas group by 的有效方法

python - 为 Python 做贡献

python - 没有numpy的矩阵转置,错误: list index out of range

python - 如何将一系列元组转换为 Pandas 数据框?

python - 在 Pandas 的 Lambda 函数中使用条件语句时出现问题

python - Pandas:获取数据框中的列表作为行

python - 在 Python 中从 URL 中抓取特定信息

python - Python 中的请求与请求模块

python - 加速套接字发送行为(在 Python 中)

python - 如何删除整数类型列中的最后两位数字?