python - 使用切片格式化时间 str
问题描述
我有一些时间数据需要转换为适当的日期时间
data['dep_time'] = pd.to_datetime(data['dep_time'], format='%H:%M').dt.time
问题是在每个单元格中我的位数不一致
我可能有“1714”或“714”或只有“6”。
我想使用格式将每个 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
推荐阅读
- python - 在制表符分隔的文件Python中替换封闭字符串中的制表符
- r - .Rproj 文件消失但项目文件仍然存在(git 显示没有更改)
- scala - 如何在 Cats IO 效果中测量经过的时间?
- c - 创建控制台管道而不是文件管道
- java - 将 Double 与从方法计算的 Double 值相等会导致 0.0?可能是什么问题呢?
- ios - 如何在 Xcode 中使用 CMake 添加 Copy Bundle Resources 阶段?
- c# - asp.net核心项目中的不断错误
- php - PHPMailer 使用 oauth2 gmail SMTP - 如何防止电子邮件进入已发送文件夹?
- powershell - 如果进程冻结,则终止进程
- python - 遍历多个 Pandas 数据帧时删除行