问题描述
我必须解析 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。
我尝试通过多种方式打开文件:
-
df = pd.read_excel(filename,skiprows=3)
"skiprows" 以剪切无用的标题行。 -
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})