使用切片格式化时间str

时间:2018-05-03 19:11:10

标签: python pandas

我有一些时间数据,我需要使用

转换为正确的日期时间
data['dep_time'] = pd.to_datetime(data['dep_time'], format='%H:%M').dt.time

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

我可能有' 1714'或' 714'或者只是' 6'。

我想使用格式将每个str更改为00:00的格式,但是我必须从str的后面开始并假设如果我只有' 6'这意味着' 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   

4 个答案:

答案 0 :(得分:5)

尝试使用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

答案 1 :(得分:4)

在普通Python中,您可以使用right justification

for s in ('1', '12', '123', '1234'):
    print(s.rjust(4, '0'))

<强>输出

0001
0012
0123
1234

答案 2 :(得分:2)

不像一些建议那么优雅,但很简单,可能适合你?

dt = 'dep_time'.zfill(4)
dt = dt[:2] + ":" + dt[2:]

所以1你会得到

00:01

和613:

 06:13

或更简洁:

dt = '{0}:{1}'.format(date_time.zfill(4)[:2], date_time.zfill(4)[2:])

答案 3 :(得分:2)

借用温的pandas.Series.str.zfill

df.time.str.zfill(4) 0 0001 1 0012 2 0123 3 1234 Name: time, dtype: object

[f'{int(i):04d}' for i in df.time]

['0001', '0012', '0123', '1234']

Python 3.6 f-string

<a id="am-accessible-userName" href="javascript:void(0);" class="selected">
Name 
<span class="util accessible-text">, sort Z to A</span> 
<span class="jpui iconwrap sortIcon" id="undefined" tabindex="-1"> 
<span class="util accessible-text" id="accessible-"></span> 
<i class="jpui angleup util print-hide icon" id="icon-undefined" aria-hidden="true"></i>
</span>
</a>