繁体   English   中英

Pandas 将 Hour 和 Minute 列组合到时间

[英]Pandas combine Hour and Minute column to time

我正在尝试将 Hour 列和 Minute 列组合成 HH:MM 格式

我尝试了以下

time = pd.to_timedelta(df['HOUR'],unit='h') + pd.to_timedelta(df['MINUTE'],unit ='m') 
time = pd.to_datetime(report_time).dt.time

这是有效的,但是它显示

FutureWarning: Passing timedelta64-dtype data is deprecated, will raise a TypeError in a future version   return func(*args, **kwargs)

而且它效率不高,因为我尝试了一个大型数据集的代码,它耗尽了我的记忆。

我想知道是否有另一种方法可以将小时列和分钟列转换为 HH:MM 格式

我的数据就像

Hour   Minute 
 8       12
 9       30
 3       15

我的目标就像

08:12
09:30
03:15

将两列转换为字符串,添加分隔符并使用带format参数的to_datetime

time = (pd.to_datetime(df['Hour'].astype(str) + ':' + df['Minute'].astype(str), format='%H:%M')
          .dt.time)
print (time)
0    08:12:00
1    09:30:00
2    03:15:00
dtype: object

另一个想法是多个Hour乘以 100,添加minute并转换为%H%M格式:

time = pd.to_datetime(df['Hour']*100 + df['Minute'], format='%H%M').dt.time
print (time)
0    08:12:00
1    09:30:00
2    03:15:00
dtype: object

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM