python - 如何将混合时间和日期时间值的列转换为日期时间(或时间)?
问题描述
这是列
Time CloseTime
17 09:30:00 2019-04-22 09:32:00
27 09:30:00 2019-05-13 09:32:00
36 09:30:00 15:15:00
37 09:30:00 15:15:00
44 09:30:00 2019-05-24 09:32:00
76 09:30:00 2019-06-07 09:32:00
92 09:30:00 2019-06-17 09:32:00
目前dtype
,两列的O
.
我想将两列都转换为,time
以便可以比较(减去)它们。
我努力了:
df['CloseTime'] = pd.to_datetime(df['CloseTime'])
解决方案
map
+to_timedelta
对此有一点乐趣。
x = pd.to_datetime(df['CloseTime']).dt.time.astype(str)
y = df['Time'].astype(str)
# convert `x` and `y` to `timedelta`, then subtract
df['diff'] = pd.Series.sub(*map(pd.to_timedelta, (x, y)))
df
Time CloseTime diff
17 09:30:00 2019-04-22 09:32:00 00:02:00
27 09:30:00 2019-05-13 09:32:00 00:02:00
36 09:30:00 15:15:00 05:45:00
37 09:30:00 15:15:00 05:45:00
44 09:30:00 2019-05-24 09:32:00 00:02:00
76 09:30:00 2019-06-07 09:32:00 00:02:00
92 09:30:00 2019-06-17 09:32:00 00:02:00
推荐阅读
- android - 主要从中国制造商获取不同设备上的位置
- c# - DirectoryInfo 从不同方法调用时返回不同的值
- python - 无法在 Win10 上运行 tensorflow
- laravel - vps服务器上的docker问题
- python - AIX 中的库文件 libpython3.7m.a 是什么?静态库还是共享库?
- git - 主机密钥验证失败请确保您拥有正确的访问权限
- javascript - 上传表单后,我的反应多选不为空
- ios - 仅取消今天重复的 UNNotification
- json - 将 AWS S3 中的 json 文件合并到一个文件中
- installation - 搜索独立于平台的安装程序