如何在 read_excel 执行期间以字符串形式获取时间值?

问题描述

我必须解析 ODF 格式的旋转门的数据文件文件中是 HH:MM:SS 中的员工进/出时间值(如 141:59:30)。
link to sample file on GoogleDrive

我尝试使用 df = pd.read_excel(filename,engine="odf",...) 打开文件的尝试失败了:ParserError 小时必须在 0..23: 141:59:30。

我尝试通过多种方式打开文件

  1. df = pd.read_excel(filename,skiprows=3) "skiprows" 以剪切无用的标题行。
  2. df = pd.read_excel(filename,skiprows=3,dtype=str) "dtype=str" 我想,这个选项将所有单元格表示为字符串,以禁止自动日期时间解析。

但我还没有消除 ParserError 异常。 你能指点我一种在 read_excel 执行时获取像 '141:59:30' 这样的值作为字符串的方法吗?

解决方法

您可以将字典传递给 dtype 参数,您可以在其中输入列名作为键,将数据类型作为值。

可能看起来像这样:

df = pd.read_excel(filename,engine="odf",skiprows=3,dtype={'time_col':str})

更新

您也可以尝试在 read 语句中传递一个转换器函数。

def to_timedelta(x):
  return pd.to_timedelta(x)

df = pd.read_excel(filename,converters={-1:to_timedelta})