繁体   English   中英

如何将4位数转换为小时:熊猫中的分钟时间格式

[英]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.

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