我有一些时间数据需要转换为正确的日期时间
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
