我有两个数据框(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)
我无法理解的部分是为什么我的代码突然不起作用。我昨天确实遇到了同样的错误,但我刚刚再次运行脚本并且它有效,但现在我什么也没得到。
我查看了人们发布的其他问题,但没有运气。
这是一个常见问题,您只需使用以下代码将日期时间列格式化为字符串即可解决它:
import datetime
df[columns_to_replace] = df[columns_to_replace].applymap(lambda x: str(x) if isinstance(x, datetimetime) else x)