繁体   English   中英

如何在不覆盖其他列的情况下从 Pandas DataFrame 写入特定列到 Excel?

[英]How to write a specific column from Pandas DataFrame to Excel without overwriting other columns?

我有一个 Excel 输入文件,其中一列一开始是空的。 然后,基于输入的 rest ,我正在计算d_eff ,我希望它回到同一个输入文件中。 因为其他列中有公式,所以我不想覆盖那些。

例如,这是开头的文件:

d_eff d1 d2 查看
1 2 d_eff = d1+d2?
5 6 d_eff = d1+d2?

然后我想用我的脚本填充 d_eff ,而不会覆盖check列中的公式。

我正在使用 Pandas,因此输入文件位于 DataFrame df中。

这是我得到的最接近的:

with pd.ExcelWriter(filename, engine='openpyxl', mode='a') as writer:
    df.d_eff.to_excel(writer, sheet_name='Sheet1')

但在这种情况下,它将d_eff放在 Sheet11 而不是 Sheet1 上。

如何将d_eff放在现有位置的 Excel 文件中,而不覆盖其他列中的公式?

一旦将工作簿名称和 sheet_name 分配给编写器 object。 它应该能够将数据 append 到现有工作表而不覆盖其他工作表。

with pd.ExcelWriter(filename, engine='openpyxl', mode='a') as writer:
    book = openpyxl.load_workbook(filename)
    writer.book = book
    writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
    df.d_eff.to_excel(writer, sheet_name='Sheet1', startcol=0, index=False)
    writer.save()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM