我正在尝试将“小时”列和“分钟”列合并为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
答案 0 :(得分:1)
将两列都转换为字符串,添加分隔符,并将to_datetime
与format
参数一起使用:
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