Skip to main content
 首页 » 编程设计

python之使用切片格式化时间字符串

2025年05月04日20tuyile006

我有一些时间数据需要转换为正确的日期时间

data['dep_time'] = pd.to_datetime(data['dep_time'], format='%H:%M').dt.time 

问题是在每个单元格中我的数字位数不一致

我可能有“1714”或“714”或只有“6”。

我想使用 format 将每个 str 更改为格式 00:00,但我必须从 str 的后面开始并假设如果我只有 '6' 则表示 '00:06'

        year  month  day  dep_time  dep_delay  arr_time  arr_delay  cancelled  \ 
103992  2014      5   11      1013         -2      1247        -13          0    
103993  2014      5   11      1929         -1      2215        -24          0    
103994  2014      5   11      1117          5      1355          9          0    
103995  2014      5   11       736        -10       924        -18          0    
103996  2014      5   11      1340          0      1647         10          0    

请您参考如下方法:

尝试使用str.pad

df=pd.DataFrame({'time':['1', '12', '123', '1234']}) 
df.time.str.pad(4,side='left',fillchar='0') 
Out[188]:  
0    0001 
1    0012 
2    0123 
3    1234 
Name: time, dtype: object 

或者rjust

df.time.str.rjust(4,fillchar='0') 
Out[190]:  
0    0001 
1    0012 
2    0123 
3    1234 
Name: time, dtype: object 

更新

pd.to_datetime(df.time.str.pad(4,side='left',fillchar='0'),format='%H%M').dt.time 
Out[199]:  
0    00:01:00 
1    00:12:00 
2    01:23:00 
3    12:34:00 
Name: time, dtype: object