Как я могу записать два кадра данных в файл Excel по указанному пользователем пути? - PullRequest
0 голосов
/ 27 апреля 2020

Я довольно новичок в использовании python для анализа данных и для написания кода в целом. Я использую pandas и ноутбук Jupyter для всего моего кодирования и анализа.

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

df_peak = DataFrame()
df_ZScore_calc = DataFrame()

writer = pd.ExcelWriter('Analysis.xlsx')
df_peak.to_excel(writer, 'PeakHeight')
df_ZScore_calc.to_excel(writer, 'ZScore')
writer.save()

Я бы хотел, чтобы пользователь каждый раз идентифицировал папку и имя файла вместо жесткого кодирования. Я пробовал несколько подходов к этому, в основном с использованием tkinter, но каждый другой подход, который я пробовал, приводит к одной из нескольких ошибок ExcellWriter. Последнее, что я пробовал - это использовать tkinter askdirectory (), чтобы позволить пользователю идентифицировать папку, и tkinter simpledialog, чтобы позволить пользователю назвать файл. Затем я создаю третью переменную, которая объединяет указанный пользователем путь и имя файла. Что у меня выглядит примерно так:

from tkinter import simpledialog 
from tkinter.filedialog import askdirectory 
import os
SaveFolder = askdirectory()
FileName = simpledialog.askstring("Input", "What is the file name?")
SaveFilePath = os.path.abspath(SaveFolder + '/' + FileName + '.xlxs')

writer = pd.ExcelWriter(SaveFilePath)
df_peak.to_excel(writer, 'PeakHeight')
df_ZScore_calc.to_excel(writer, 'ZScore')
writer.save()

Если я распечатываю SaveFilePath, он выглядит правильно, и если вручную ввести то, что было напечатано из SaveFilePath в ExcelWriter, он работает правильно. Когда я пытаюсь использовать SaveFilePath непосредственно в ExcelWriter, я получаю сообщение об ошибке.

Любая помощь в том, чтобы заставить это работать, будет принята с благодарностью, будь то исправление кода, который я имею, или предложение чего-то совершенно другого.

Редактировать: Ответ получен. Была опечатка ".xlxs" вместо ".xlsx"

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