[英]How to convert 4-digit number into hours:minutes time format in pandas
我有一个4位数的字符串格式的时间,由小时和分钟组成。 例如,1608并且需要转换为=> 16:08
数据以pandas数据框的形式出现,我试过:
A st_time
1 23 1608
2 12 1635
3 18 1654
4 38 1705
我试过用:
df.st_time.to_datetime().strftime('%h-%m')
但是,它会抛出错误。
AttributeError: 'Series' object has no attribute 'to_datetime'
您需要通过将df.st_time
系列df.st_time
给它来使用pd.to_datetime
。 完成后,您可以访问time
组件。
df.assign(newtime=pd.to_datetime(df.st_time, format='%H%M').dt.time)
A st_time newtime
1 23 1608 16:08:00
2 12 1635 16:35:00
3 18 1654 16:54:00
4 38 1705 17:05:00
但是,如果您希望返回具有指定格式的字符串。
df.assign(newtime=pd.to_datetime(df.st_time, format='%H%M').dt.strftime('%H:%M'))
A st_time newtime
1 23 1608 16:08
2 12 1635 16:35
3 18 1654 16:54
4 38 1705 17:05
首先将数字转换为字符串,然后使用str进行索引 :
df.st_time = df.st_time.astype(str)
df.st_time = df.st_time.str[:2] + ':' + df.st_time.str[-2:]
print (df)
A st_time
1 23 16:08
2 12 16:35
3 18 16:54
4 38 17:05
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.