我有4个不同的程序,读取4个不同类型的CSV文件,以获得相同格式的数据.我的目标是将每个程序的数据帧导出到一个单独的EXCEL工作簿中,放在4个单独的工作表上.每次我编写一个数据帧以超越它时,它都会覆盖刚刚导出到那里的数据.

这是我拥有的代码,每个程序都是相同的:

rowPos = 1
    with pd.ExcelWriter(f"Y:\HedgeFundRecon\JAron\Output\JAronOutput.xlsx", datetime_format='mm/dd/yy') as writer:
        for item in df_list:
            item.to_excel(writer, sheet_name='JAron', startrow=rowPos)
            rowPos += (len(item) + 2)

我将代码改为这样,以判断文件是否不存在,然后写入文件,但如果它确实存在,则覆盖工作表:

rowPos = 1
    if(os.path.exists(path)):
        with pd.ExcelWriter(path, engine='openpyxl', mode='a', if_sheet_exists='replace', datetime_format='dd/mm/yyyy') as writer:
            for item in df_list:
                item.to_excel(writer, sheet_name='JAron', startrow=rowPos)
                rowPos += (len(item) + 2)
    else:
        with pd.ExcelWriter(path, engine='openpyxl', mode='w', date_format='dd/mm/yyyy') as writer:   
            for item in df_list:
                item.to_excel(writer, sheet_name='JAron', startrow=rowPos)
                rowPos += (len(item) + 2)

我将如何更改此代码以阻止数据被覆盖?我try 将模式设置为追加,但xlsxWriter不支持该模式.有什么建议吗?

推荐答案

编辑:

我try 将模式设置为追加,但xlsxwriter不支持该模式

try 指定engine='openpyxl'并在必要时将其与pip install openpyxl一起安装.

在append模式下使用xlsxwriter会产生以下结果:

ValueError: Append mode is not supported with xlsxwriter!

您必须将这两个选项与ExcelWriter一起使用:

  • mode='a'以避免覆盖工作簿
  • if_sheet_exists='replace'替换现有工作表(非必填)
rowPos = 1
with pd.ExcelWriter(f"Y:\HedgeFundRecon\JAron\Output\JAronOutput.xlsx", 
                    datetime_format='mm/dd/yy',
                    mode='a', if_sheet_exists='replace') as writer:
    for item in df_list:
        item.to_excel(writer, sheet_name='JAron', startrow=rowPos)
        rowPos += (len(item) + 2)

如果您的两个脚本试图同时写入同一文件,请务必小心.

Python相关问答推荐

如何将uint 16表示为float 16

当pip为学校作业(job)安装sourcefender时,我没有收到匹配的分发错误.我已经try 过Python 3.8.10和3.10.11

在编写要Excel的数据透视框架时修复标题行

不允许AMBIMA API请求方法

如何使用上下文管理器创建类的实例?

添加包含中具有任何值的其他列的计数的列

如何计算列表列行之间的公共元素

如何在Deliveryter笔记本中从同步上下文正确地安排和等待Delivercio代码中的结果?

从webhook中的短代码(而不是电话号码)接收Twilio消息

2维数组9x9,不使用numpy.数组(MutableSequence的子类)

对Numpy函数进行载体化

当多个值具有相同模式时返回空

难以在Manim中正确定位对象

. str.替换pandas.series的方法未按预期工作

如何从在虚拟Python环境中运行的脚本中运行需要宿主Python环境的Shell脚本?

计算组中唯一值的数量

运输问题分支定界法&

幂集,其中每个元素可以是正或负""""

如何在Python中使用Iscolc迭代器实现观察者模式?

语法错误:文档. evaluate:表达式不是合法表达式