HH:MM:SS格式条的Excel数据失败

时间:2018-10-23 17:01:16

标签: python excel datetime

我不拥有的系统提供的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不匹配

1 个答案:

答案 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]))

它将删除日期,然后获取:之前的第一个元素,并将其转换为整数。