python - 如何在python中从日期时间到时间(HH:MM:SS)传递熊猫数据框列
问题描述
我有一个看起来像这样的df:
date arrival_time departure_time
0 2021-01-16 2021-01-16 16:58:16 2021-01-16 21:02:19
1 2021-01-16 2021-01-16 22:34:04 2021-01-16 22:34:51
2 2021-01-27 2021-01-27 16:01:21 2021-01-27 16:02:22
3 2021-01-07 2021-01-07 11:57:08 2021-01-07 14:22:15
4 2021-01-07 2021-01-07 12:20:54 2021-01-07 13:41:43
date
,arrival_time
列departure_time
是datetime64[ns]
列。我想要做的是将arrival_time
和departure_time
列转换为time
这种格式:HH:MM:SS
. 因此,我想要的输出应该是这样的:
date arrival_time departure_time
0 2021-01-16 16:58:16 21:02:19
1 2021-01-16 22:34:04 22:34:51
2 2021-01-27 16:01:21 16:02:22
3 2021-01-07 11:57:08 14:22:15
4 2021-01-07 12:20:54 13:41:43
我试过这段代码:
df["arrival_time"] = pd.to_datetime(df['arrival_time']).dt.strftime("%H:%M:%S")
df["departure_time"] = pd.to_datetime(df['departure_time']).dt.strftime("%H:%M:%S")
我也试过这个:
df['arrival_time'] = pd.to_datetime(df['arrival_time'], format="%Y-%m-%d %H:%M:%S").dt.strftime("%H:%M:%S")
然而,这两种方法都返回一个字符串,而不是一个time
对象。如果有人知道该怎么做,我将非常感谢您的帮助!!!
解决方案
要将值作为'datetime.time'
对象获取,您可以.time
像这样使用:
df["arrival_time"] = pd.to_datetime(df['arrival_time'], format="%Y-%m-%d %H:%M:%S").dt.time
df["departure_time"] = pd.to_datetime(df['departure_time'], format="%Y-%m-%d %H:%M:%S").dt.time
print(df)
print(df['departure_time'][0].__class__) # print element class
输出:
date arrival_time departure_time
0 2021-01-16 16:58:16 21:02:19
1 2021-01-16 22:34:04 22:34:51
2 2021-01-27 16:01:21 16:02:22
3 2021-01-07 11:57:08 14:22:15
4 2021-01-07 12:20:54 13:41:43
<class 'datetime.time'>
推荐阅读
- java - 如何设置两个变量等于某人在 java 中键入的内容?
- twilio - 如果电话无人接听,请拨其他号码
- sql - 我有一个人的多个进入和退出状态。我如何获得单身人士的最后状态
- java - where条件后的SQL查询文本形成逻辑
- javascript - 当我需要“表达”时,我需要知道它是对象还是函数
- c# - 获取特定类型的所有元素的列表
- python - Python 脚本在 IDLE 中执行时有效,但在控制台中无效
- reactjs - 向 memoized 组件添加不可为空的静态类型会引发 lint 错误,请参阅示例以了解清楚
- java - 方法论:为用户操作实现逻辑?(没有客户端和服务器之间的代码重复或不可接受的用户体验)
- ios - 如何在 iOS 应用中选择音乐文件