使用pandas ExcelWriter写入数据后出现多余小数点的问题求助
大家好,我最近在处理pandas写入Excel的需求时遇到了一个诡异的问题,想请教下各位大佬怎么解决。
我的需求很明确:把data.csv里A1到T1的20个数值数据,追加写入到Mergeddata.xlsx的Sheet1工作表中,从D2单元格(对应代码里的startcol=3、startrow=1)开始的位置。
我写的实现代码如下:
import pandas as pd import numpy as np import os df = pd.read_csv('data.csv', header=0) with pd.ExcelWriter('Mergeddata.xlsx', engine="openpyxl", mode='a', if_sheet_exists='overlay') as writer: df.to_excel(writer, sheet_name='Sheet1', startcol=3, startrow=1, index=False)
初始数据情况
data.csv要复制的目标数据:90.77 90.7 90.8 81 69.3 90 0.72 0.71 0.72 64.46 90 64.54 63.64 65 5808.68 90 0.98 0.98 0.98 88.24 90
Mergeddata.xlsx的初始表头与已有数据:Time NE Index DuVoltageAvg(V) DuVoltageMin(V) DuVoltageMax(V) DuVoltageTot(V) DuVoltageCnt(count) DuCurrentAvg(A) DuCurrentMin(A) DuCurrentMax(A) DuCurrentTot(A) DuCurrentCnt(count) DuPowerAvg(W) DuPowerMin(W) DuPowerMax(W) DuPowerTot(W) DuPowerCnt(count) PowerFactorAvg(PF) PowerFactorMin(PF) PowerFactorMax(PF) PowerFactorTot(PF) PowerFactorCnt(count)
2025-06-08 15:15 SC_401B ShelfID0/SlotID0 90.73 90.6 90.8 8165.7 90 0.72 0.71 0.72 64.44 90 64.46 63.64 65.45 5801.3 90 0.98 0.98 0.98 88.24 90
出现的问题
执行完代码后,我打开Mergeddata.xlsx发现目标单元格的数据完全不对了:
- 原本独立的数值被错误拼接,比如
81和69.3变成了8169.3 - 重复的数值后面多了小数点和序号后缀,比如原
0.72变成0.72.1,原90变成90.0.1、90.0.2这类奇怪的格式
我本来以为if_sheet_exists='overlay'参数会直接覆盖指定位置的单元格内容,但实际结果却完全超出预期。有没有人遇到过类似的问题?怎么才能让写入的数值和data.csv里的原始值完全一致,不会出现多余的小数点后缀和拼接错误呢?
内容来源于stack exchange

