如何用 python 中的数据框替换 excel 工作簿中的列

How to replace a column in a excel workbook with a dataframe in python

我从互联网上抓取了数据,经过一些操作后我获得了这样的数据框;

    0       1        2           3
3   BAFRA   0   10000   0.114705
4   BAFRA   100001  300000  0.114705
1   BAFRA   300001  1000000 0.114705
0   BAFRA   1000001 10000000    0.114705
2   BAFRA   10000001    100000000   0.114705
5   BAFRA   100000000   100000001   0.114705

我想要的是获取第三列并将其替换为特定 sheet 中现有 excel 文件中的特定列和行。 我正在使用此代码;

with pd.ExcelWriter(...\Gas Settlement Aug20.xlsx",engine="openpyxl") as writer:  
    df[3].to_excel(writer, sheet_name='Unit Prices',header= False, index = False, startcol=12,startrow=24)
import openpyxl 
wb = openpyxl.load_workbook(...\Gas Settlement Aug20.xlsx")
ws = wb['Unit Prices']
wb.save(...\Gas Settlement Aug20.xlsx")

但是它删除了所有信息,我尝试了模式 'a' 但这次它创建了一个新的 sheet。 有什么方法可以用新数据替换我的旧数据...

您似乎同时使用了两种不同的方法:pd.ExcelWriter 和 openpyxl。 只需按照您提供的示例,您就可以像这样使用 openpyxl 来更新您的文件:

import openpyxl 
wb = openpyxl.load_workbook("...\Gas Settlement Aug20.xlsx")
ws = wb['Unit Prices']
startcol = 12
startrow = 24
for item in df[3]:
    ws.cell(startrow, startcol).value = item
    startrow +=1
wb.save(...\Gas Settlement Aug20.xlsx")

但我建议您不要使用这种形式的数字索引,因为它很容易产生错误,而且很难找到这些错误。根据大小,即使读取整个文件,更新和再次保存也会更安全,更容易跟踪。