我有多张纸,每张纸都有相似的列。我想将工作表名称更改为重复的列值之一。
例如:
A B C D
1 X1 5 ftr
2 X1 3 nbg
3 X1 2 nhg
4 X1 3 ght
5 X1 2 fgt
我已使用以下答案将多个数据框转换为excel:
List of multiple dataframes to separate Excel sheets。
我想将工作表名称替换为“ B”列值(X1)。
如果“ B”列值为空,我想删除工作表。
我想知道有没有可能。
很高兴听到一些建议。
答案 0 :(得分:1)
首先找到重复的列,并通过以下代码存储其值:
df1= pd.DataFrame({'A': [1,1,1,1,1],
'C': np.random.randn(5)})
nunique = df1.apply(pd.Series.nunique)
value_col = nunique[nunique == 1] ## Value_col will have "1". In your case it will be "X1"
现在导入openpyxl重命名工作表
import openpyxl
file_name=openpyxl.load_workbook("sample.xlsx")
sheet_name = file_name.get_sheet_by_name('Sheet')
if len(value_col) == 1:
sheet_name.title = value_col[0]
else:
file_name.remove_sheet(sheet_name)
ss.save("sample.xlsx")