将工作表名称更改为重复的列值

时间:2018-11-13 13:04:15

标签: python pandas dataframe

我有多张纸,每张纸都有相似的列。我想将工作表名称更改为重复的列值之一。

例如:

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”列值为空,我想删除工作表。 我想知道有没有可能。
很高兴听到一些建议。

1 个答案:

答案 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")