我不拥有的系统提供的excel文件以HH:MM:SS的形式提供了在项目或任务上工作的小时数,通常,如果时间不超过23小时,这将不是问题。无论何时24小时或更长时间,python都将其视为1/1/1900 00:00:00
,但是源文件中显示的内容类似于37:00:00
我需要在excel文件中解析该字段,以将37作为一个整数。
我尝试了以下操作:
df['Planned working time'].map(lambda x: (x, x.split(":"))) gives me 'datetime.time' object has no attribute 'split'
df['Planned working time'].map(lambda x: datetime.datetime.strptime(str(x), "%H:%M:%S"))
给我时间数据'1900-01-01 00:00:00'
与format '%H:%M:%S
不匹配
答案 0 :(得分:0)
您的df['Planned working time']
包含非字符串格式的数据,因此您将无法应用.split()
,并且也与您的%H:%M:%S
格式不匹配,因为里面还有一个日期Excel文件(单元格值)。
您可以尝试将其延迟转换为字符串,并从拆分中获取第一个值。
df['Planned working time'].astype(str).apply(lambda x: int(x.split()[-1].split(':')[0]))
它将删除日期,然后获取:
之前的第一个元素,并将其转换为整数。