在安装了熊猫和必要的库并从Excel文件中读取后,我想添加一个新列,但是当我写回该文件时,它会删除该文件中已经存在的信息并仅给出新列。
这是我使用的代码:
pf=pd.DataFrame({'ID': [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]})
writer=pd.ExcelWriter(pathdata, engine='xlsxwriter')
pf.to_excel(writer, sheet_name='Sheet1')
writer.save()
答案 0 :(得分:0)
您最初是从excel作为数据提取数据,然后创建一个新的数据框 df 。然后,您将此新数据框写入excel( df .to_excel(writer,sheet_name ='Sheet1')。此新数据框与最初提取的数据无关。这应该可以解决您的问题:< / p>
import pandas as pd
pathdata= r'C:\Users\......\........\project.xlsx'
data = pd.read_excel(pathdata)
data['ID'] = [10,20,30,40,50,60,70,80,90,100]
writer=pd.ExcelWriter(pathdata, engine='xlsxwriter' )
data.to_excel(writer, sheet_name='Sheet1')
writer.save()
如果要通过为要添加的列创建新的数据框来解决此问题,可以执行以下操作:
import pandas as pd
pathdata= r'C:\Users\......\........\project.xlsx'
data = pd.read_excel(pathdata)
df=pd.DataFrame({'ID':[10,20,30,40,50,60,70,80,90,100]})
x = [data, df]
data = pd.concat(x, axis = 1)
writer=pd.ExcelWriter(pathdata, engine='xlsxwriter' )
data.to_excel(writer, sheet_name='Sheet1')
writer.save()
答案 1 :(得分:0)
这可能是因为您实际上并未从Excel文件中读取数据。不知道实际数据是什么样子,这可能是您想要的工作流程:
df = pd.read_excel(pathdata)
df['ID'] = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
df.to_excel(newpathdata)
答案 2 :(得分:0)
import pandas as pd
pathdata= r'C:\Users\......\........\project.xlsx'
data= pd.read_excel(pathdata)
现在我想将此列表添加为附加列,例如,此列表ID = [10,20,30,40,50,60,70,80,90,100]
df=pd.DataFrame({'ID':[10,20,30,40,50,60,70,80,90,100]})
writer=pd.ExcelWriter(pathdata, engine='xlsxwriter' )
df.to_excel(writer, sheet_name='Sheet1')
writer.save()
这只是给我一个文件,其中只包含我希望保留先前信息的新列
答案 3 :(得分:0)
这是在我现有的excel文件(exceldata.xlsx)中添加名为“total”的新列的简单代码
import pandas as pd
from openpyxl import Workbook
df = pd.read_excel("exceldata.xlsx", engine='openpyxl')
df["total"] = df["Jan"] + df["Feb"] + df["Mar"]
print(df.head())
writer=pd.ExcelWriter("exceldata.xlsx", engine='xlsxwriter' )
df.to_excel(writer, sheet_name='Sheet1')
writer.save()
这是生成的 excel 文件,其中包含 total 命名列..enter image description here