为了账号安全,请及时绑定邮箱和手机立即绑定

python日期时间字符串到时间格式

python日期时间字符串到时间格式

慕莱坞森 2022-07-26 16:46:56
我正在从我的数据框中将时间转换为 datetime.time 格式。原始时间格式如下所示:420, 441, 31, 158像这样的东西。所以数据中没有秒,只有小时和分钟。我编写了一个代码来将该字符串转换为 datetime.time 格式,time = datetime.strptime(str(time, '%H%M').time()它可以正常工作,但是在分析数据的过程中,我在应用代码时意识到了一些错误。比如原来记录的时间是01:58,但是在dataframe中,却保存了158这样的形式。我应用代码的时候,它把时间转换成15:08,与原始文档相比是不正确的。但问题是 01:58 和 15:08 都会将表单保存在数据框中的相同值中,即 158。那么,如何处理这个问题呢?现在似乎没有解决方案,除了原始文档必须以不同的时间格式保存。
查看完整描述

2 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

 import time


test=[420, 441, 31, 158]


string=str(test[2])


if len(string)<3:

    h=str(0)

    m=string[:]


else:

    h=string[:1]

    m=string[1:]


timesss=h+"/"+m


aa=time.strptime(timesss, '%H/%M')

输出


print(aa) --> time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=31, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1)

print(aa[3]) --> 0

print(aa[4]) --> 31

print(type(aa)) --> <class 'time.struct_time'>


查看完整回答
反对 回复 2022-07-26
?
浮云间

TA贡献1829条经验 获得超4个赞

str.zfill这是假设您有 4 位数字的一种方法。


前任:


import datetime


data = ["420", "441", "31", "158"]


for time in data:

    print(datetime.datetime.strptime(time.zfill(4), '%H%M').time())

输出:


04:20:00

04:41:00

00:31:00

01:58:00


查看完整回答
反对 回复 2022-07-26
  • 2 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号