Python Pandas - Создать функцию для использования read_excel () для нескольких файлов - PullRequest
0 голосов
/ 10 мая 2018

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

Моя функция выглядит следующим образом:

def excel_reader(df1, file1, sheet1, df2, file2, sheet2):
    df1 = pd.read_excel(file1, sheet1)
    df2 = pd.read_excel(file2, sheet2)

def save_to_excel(df1, filename1, sheet1, df2, filename2, sheet2):
    df1.to_excel(filename1, sheet1)
    df2.to_excel(filename2, sheet2)

Я звонюфункции как:

excel_reader(df1, 'some_file1.xlsx', 'sheet_name1', 
                df2, 'some_file2.xlsx', 'sheet_name2')

save_to_excel(df1, 'some_file1.xlsx', 'sheet_name1', 
                        df2, 'some_file2.xlsx', 'sheet_name2')

Нет ошибок, но не создаются файлы Excel, которые должны выполняться функцией save_to_excel.

Считывает параметры функции до *Параметр 1012 * и возвращает ошибку для последних двух.

Я буду использовать pd.read_excel() в своем коде довольно много раз, поэтому я пытаюсь сделать его функцией.Я также знаю, что the read_excel() считывает имена файлов в виде строки и пытался сделать `somefile.xlsx ', но все равно с тем же результатом.

Файлы Excel, которые будут прочитаны, находятся по тому же пути, что и скрипт python.

Вопрос: Любой совет, как это будет работать?Целесообразно ли сделать это функцией или я должен просто использовать read_excel() многократно?

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Вам не хватает обратного звонка. Если вы просто хотите, чтобы функция возвращала фреймы данных, тогда

def excel_reader(file1, sheet1, file2, sheet2):
    df1 = pd.read_excel(file1, sheet1)
    df2 = pd.read_excel(file2, sheet2)
    return df1, df2

df1, df2 = excel_reader('some_file1.xlsx', 'sheet_name1', 'some_file2.xlsx', 'sheet_name2')
0 голосов
/ 10 мая 2018

Не думаю, что эта функция что-то улучшит ...

Только представьте, что вам нужно вызвать pd.read_excel() с разными параметрами для разных файлов Excel - например:

df1 = pd.read_excel(file1, 'Sheet1', skiprows=1)
df2 = pd.read_excel(file2, 'Sheet2', usecols="A,C,E:F")

Вы потеряете всю эту гибкость, используя ваши пользовательские функции ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...