Python редактировать несколько листов

#python #function #class #worksheet-function

#python #функция #класс #рабочий лист-функция

Вопрос:

Я хотел бы отредактировать несколько листов, присутствующих в одном файле Excel, а затем сохранить их с внесенными изменениями. Эти листы имеют одинаковые заголовки столбцов и называются кредитными и дебетовыми. Созданный мной код выглядит следующим образом:

 import pandas as pd
import numpy as np

class blah:
    def __init__(self, path, file_in, file_out):
        self.path = path
        self.file_inviato = file_in
        self.file_out = file_out
        
    def process_file(self):
        df = pd.read_excel(self.path   self.file_in, sheet_name=None, skiprows=4)
       
        
       ****Here is where I am struggling in amending both worksheets at the same time****
       
       #  df = df.columns.str.strip()
       #  df['Col1'] = np.where((df['Col2'] == 'KO') | (df['Col2'] == 'OK'), 0, df['Col1'])
        



        writer = pd.ExcelWriter(self.path   self.file_out, engine='xlsxwriter')
        
        for sheet_name in df.keys():
            df[sheet_name].to_excel(writer, sheet_name=sheet_name, index=False)
            
        writer.save()

    
b = blah('path....',
         'file in....xlsx',
         'file out.xlsx')


b.process_file()
  

Ответ №1:

найдено обходное решение:

 for sheet_name in df.keys():
            df[sheet_name] = df[sheet_name].rename(columns=lambda x: x.strip())


            df[sheet_name]['Col1'] = np.where((df[sheet_name]['Col2'] == 'KO') | 
                                               (df[sheet_name]['Col2'] == 'OK'), 0, df[sheet_name]['Col1'])