[英]How to save DataFrame to Sheet2 in xlsx file
我使用 Pandas 创建了一个简单的 DataFrame,我需要将它添加/替换到我的 Xlsx 文件中的 Sheet2。 Xlsx 文件中的表格是: Sheet1, Sheet2 我有两个问题:
首先,即使我指定了 sheetName,它所做的只是删除数据库中已经存在的所有工作表,并仅创建一个具有数据指定名称的工作表。
其次是我无法从数据框中删除列索引。 我尝试添加 'index_col=None' 但它所做的只是导致错误。
到目前为止的代码:
import pandas as pd
from pandas import ExcelWriter
from pandas import ExcelFile
import numpy as np
Number1 = '123456'
Number2 = '987654'
Number3 = '888888'
Comp = 'HelloAll'
excel_file = 'C:/Users/username/Desktop/testFile.xlsx'
data = {'Number1': [Number1],
'Number2': [Number2],
'Number3': [Number3],
'Comp': [Comp]
}
df = pd.DataFrame (data, columns = ['Number1','Number2', 'Number3', 'Comp'])
pd.set_option('display.max_columns', None)
print (df)
with ExcelWriter(excel_file) as writer:
df.to_excel(writer, sheet_name='Sheet2')
预期结果:
Number1 Number2 Number3 Comp
123456 987654 888888 HelloAll
1) 为了保留文件的工作表,您需要做的第一件事是导入所有这些工作表,然后重新编写它们。 对我xlsxwriter
一种方法是使用xlsxwriter
:
import pandas as pd
# Read the 1st sheet and import it as first dataframe
#df1 = pd.read_excel('testFile.xlsx', sheet_name='Sheet1')
df1 = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6]}) # for this example i created a simple df
# Read the 2nd sheet and import it as second dataframe
#df2 = pd.read_excel('testFile.xlsx', sheet_name='Sheet2')
# Do some data manipulation
Number1 = '123456'
Number2 = '987654'
Number3 = '888888'
Comp = 'HelloAll'
data = {'Number1': [Number1],
'Number2': [Number2],
'Number3': [Number3],
'Comp': [Comp]}
df2 = pd.DataFrame (data, columns = ['Number1','Number2', 'Number3', 'Comp'])
# Kickstart the xlsxwriter
writer = pd.ExcelWriter('testFile.xlsx', engine='xlsxwriter')
df1.to_excel(writer, sheet_name='Sheet1', index=False)
df2.to_excel(writer, sheet_name='Sheet2', index=False)
# Finally write the file
writer.save()
2)关于您的第二个问题,只需在编写文件时使用参数 index=False 。
#pip install openpyxl
writer = pd.ExcelWriter('output.xlsx')
df.to_excel(writer,"Sheetnamethatyouwant")
writer.save()
编辑
#For adding new data
from openpyxl import load_workbook
path = r"path of xlsx that you want to add"
book = load_workbook(path)
writer = pd.ExcelWriter(path, engine = 'openpyxl')
writer.book = book
df.to_excel(writer, "sheetnamryouwant")
writer.save()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.