Как открыть разные листы Excel, используя класс python - PullRequest
0 голосов
/ 22 апреля 2020

Так что я довольно новичок в классах, но я пытаюсь написать тот, который открывает файл Excel в кадре данных, затем извлекает из него некоторую информацию, затем переходит к следующему файлу Excel и делает то же самое. Имя каждого файла совпадает с другим номером на конце, и это нельзя изменить - номера не согласованы.

Я пробовал этот код:

 class Systems:

    def __init__(self, survey_number):
        self.survey_number = survey_number
        self.file_name = 's3://misc/survey' + survey_number + '.xlsx'

    def readfile(self):
        self.df = pd.read_excel(self.file_name, sheet_name='Results')

 survey_1 = Systems('026')

 survey_1.df

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

AttributeError: Systems instance has no attribute 'df'

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

Спасибо!

РЕДАКТИРОВАТЬ - я считаю, что проблема заключается в попытке прочитать файл с помощью метода '...' + variable + '...' - есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 22 апреля 2020
class Systems:
def __init__(self, survey_number):
    self.file_name = 'yourpath' + survey_number + '.xlsx'
    self.df = pd.read_excel(self.file_name, sheet_name='Results')

, а затем

a = Systems('123')

a имеет свойство df, которое вы ищете.

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