熊猫将小时和分钟列合并为时间

时间:2020-02-19 08:14:34

标签: python pandas

我正在尝试将“小时”列和“分钟”列合并为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

1 个答案:

答案 0 :(得分:1)

将两列都转换为字符串,添加分隔符,并将to_datetimeformat参数一起使用:

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