python - 在 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)
我想在两列中创建一个具有最小值的新列(忽略 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]
为什么添加时区信息会破坏功能?我的数据集有时区,所以我需要知道如何将它们删除作为一种解决方法。
解决方案
这是个好问题,这应该是时区的错误
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]
推荐阅读
- excel - 打开新文件后无法在工作簿上书写
- flutter - 带有 http 调用的 Internet 敏感 UI
- python - 如何处理多级嵌套字典和列表 Python
- c# - 不实现所有虚方法的多态性
- jenkins - jenkins-cli 是否有一些常规限制?
- css - Bootstrap 导航栏和居中项目
- python - 如何将 numpy 数组的内容提取到列表中?
- regex - RegEx 查找组中的所有匹配项
- android - 使用新的上传密钥将 android app bundle 上传到 google play
- php - 如何使用 PHP 获取 str_replace 的数值