gpt4 book ai didi

Python Pandas - 如何在 Excel 工作表中的特定列中写入

转载 作者:行者123 更新时间:2023-12-02 04:32:45 26 4
gpt4 key购买 nike

我在使用 pandas 写入新值来更新 Excel 工作表时遇到问题。我已经有一个现有的框架 df1,它从 MySheet1.xlsx 读取值。因此这需要是一个新的数据帧,或者以某种方式复制并覆盖现有的数据帧。

电子表格采用以下格式:

enter image description here

我有一个 python 列表:values_list = [12.34, 17.56, 12.45]。我的目标是将列表值垂直插入 Col_C 标题下。它当前正在水平覆盖整个数据帧,而不保留当前值。

df2 = pd.DataFrame({'Col_C': values_list})
writer = pd.ExcelWriter('excelfile.xlsx', engine='xlsxwriter')
df2.to_excel(writer, sheet_name='MySheet1')
workbook = writer.book
worksheet = writer.sheets['MySheet1']

如何得到这个最终结果?谢谢!

enter image description here

最佳答案

下面我提供了一个完全可重现的示例,说明如何使用 pandas 和 openpyxl 模块修改现有 .xlsx 工作簿 (link to Openpyxl Docs) .

首先,出于演示目的,我创建了一个名为 test.xlsx 的工作簿:

from openpyxl import load_workbook
import pandas as pd
writer = pd.ExcelWriter('test.xlsx', engine='openpyxl')
wb = writer.book
df = pd.DataFrame({'Col_A': [1,2,3,4],
'Col_B': [5,6,7,8],
'Col_C': [0,0,0,0],
'Col_D': [13,14,15,16]})

df.to_excel(writer, index=False)
wb.save('test.xlsx')

这是此时的预期输出:

Expected Output after first section of code

在第二部分中,我们加载现有工作簿(“test.xlsx”)并使用不同的数据修改第三列。

from openpyxl import load_workbook
import pandas as pd
df_new = pd.DataFrame({'Col_C': [9, 10, 11, 12]})
wb = load_workbook('test.xlsx')

ws = wb['Sheet1']

for index, row in df_new.iterrows():
cell = 'C%d' % (index + 2)
ws[cell] = row[0]

wb.save('test.xlsx')

这是最后的预期输出:

enter image description here

关于Python Pandas - 如何在 Excel 工作表中的特定列中写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49681392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com