使用 Python xlwings 将大型数据集写入 Excel 时出现类型错误

问题描述 投票:0回答:1

我有两个数据框(df1 和 df2)。 df1 是从 csv 导入的,大约有 500 条记录,我可以完美地使用

.tables['table_name'].update()
方法。

df2 是从 Excel 工作表和 df1 导入的串联数据。这是一个很大的数据集(>90K 记录)。当我尝试将 df2 写入 Excel 工作时,出现以下错误:

TypeError: Objects of type 'datetime.time' can not be converted to a COM VARIANT

两个数据帧都有一个 [datetime64[ns]' 列

我的代码如下所示:

report = xw.Book(workbook_path)
append_sheet = report.sheets['Sheet to append to']


df2 = xlsheet_data_df.concat(df1)

append_sheet.tables[0].update(df2, index=False)

我无法理解的部分是为什么我的代码突然不起作用。我昨天确实遇到了同样的错误,但我刚刚再次运行脚本并且它有效,但现在我什么也没得到。

我查看了人们发布的其他问题,但没有运气。

python pandas excel datetime xlwings
1个回答
0
投票

这是一个常见问题,您只需使用以下代码将日期时间列格式化为字符串即可解决它:

import datetime  

df[columns_to_replace] = df[columns_to_replace].applymap(lambda x: str(x) if isinstance(x, datetimetime) else x)
© www.soinside.com 2019 - 2024. All rights reserved.