Python 使用pandas更改excel工作表的名称

Python 使用pandas更改excel工作表的名称,python,excel,pandas,dataframe,Python,Excel,Pandas,Dataframe,有两种方法可以解决这个问题 方法1 使用sheet\u name参数从一开始就将excel文件保存为正确的工作表名称 import pandas as pd import numpy as np df = pd.read_excel(r"C:\Users\venkagop\Subbu\promo validation testing\P 02. Promotions-UK C1.xls") df = df[['Promotions', 'Promotions: AE', 'Promotions:

有两种方法可以解决这个问题

方法1

使用
sheet\u name
参数从一开始就将excel文件保存为正确的工作表名称

import pandas as pd
import numpy as np
df = pd.read_excel(r"C:\Users\venkagop\Subbu\promo validation testing\P 02. Promotions-UK C1.xls")
df = df[['Promotions', 'Promotions: AE', 'Promotions: Anaplan ID', 'Promotions: Is Optima Scenario?', 'Promotions: SIDs', 'Set Inactive?', 'Start Date', 'End Date', 'Promo Period', 'Promo Optima Status', 'Change Promo Status']]
df = df[(df['Promo Period'] == 'FY1819')]
df = df[(df['Set Inactive?'] == 0 ) & (df['Promotions: Is Optima Scenario?'] == 1)]
df.dropna(subset=['Promotions: SIDs'], inplace=True)
df['Optima vs Anaplan Promo Status Validation'] = ""
df['Optima vs Anaplan Promo Status Validation'] = np.where(df['Promo Optima Status'] == df['Change Promo Status'], 'True', 'False')
df.to_excel(r"C:\Users\venkagop\Subbu\mytest.xls", index = False)
#after this i want to change sheeet1 name to some other name#
方法2

如果方法1不可行,请在稍后阶段使用
openpyxl
更改工作表名称。此方法的优点是,您无需再次将
pandas
dataframe转换为Excel格式

import pandas as pd

writer = pd.ExcelWriter(r'C:\Users\venkagop\Subbu\mytest.xls')
df.to_excel(writer, sheet_name='MySheetName', index=False)
writer.save()

非常感谢。这对我很有用,谢谢你。还有一个帮助我想再创建一个表。df['Optima vs Anaplan Promo Status Validation']=np。其中(df['Promo Optima Status']==df['Change Promo Status'],'True','False')如果为False,则需要将所有数据填充到另一个表中sheet@subbu,那将是一个不同的问题,单独问是个好主意。但是,我的建议是:使用
pandas
索引/切片将数据拆分为2个数据帧。然后通过
df1.to_excel(writer'mysheet1')
/
df2.to_excel(writer'mysheet2')
保存到两个不同的工作表。
import openpyxl

file_loc = r'C:\Users\venkagop\Subbu\mytest.xls'

ss = openpyxl.load_workbook(file_loc)
ss_sheet = ss.get_sheet_by_name('Sheet1')
ss_sheet.title = 'MySheetName'
ss.save(file_loc)