Отбрасывание и получение головой AttributeError при чтении из Excel - PullRequest
0 голосов
/ 20 апреля 2019

Я пытаюсь импортировать много листов в питон и использовать панд для обработки данных.

Я попытался использовать функцию drop(), чтобы удалить первую строку первого листа. Вот код, который я использую в своей записной книжке Jupyter:

data = pd.read_excel('dataset.xlsx', sheet_name = ['Table1'])
data
data.drop(data.index[0])

Но это ошибки с:

-----------------------------------------------------------------------------------
Attribute Error                                   Traceback (most recent call last)
<ipython-input-26-bec99022822c> in <module>()
      1 data = pd.read_excel('dataset.xlsx', sheet_name = ['Table1'])
      2 data
----> 3 data.drop(data.index[0])

AttributeError: 'collections.OrderedDict' object has no attribute 'drop'

Я тоже пытался

data.head()

Но он выдал эту ошибку:

-----------------------------------------------------------------------------------
Attribute Error                                   Traceback (most recent call last)
<ipython-input-27-304fa4ce4ebd> in <module>()
----> 1 data.head()

AttributeError: 'collections.OrderedDict' object has no attribute 'head'

Как использовать функции drop() и head()?

Ответы [ 2 ]

0 голосов
/ 20 апреля 2019

Причина в том, что вы передали список листов для открытия, и теперь Pandas возвратил словарь pandas-dataframe.

Вы можете либо передать одно имя листа, либо, альтернативно, вы можете выполнить следующее в своем примере

data = pd.read('something.xlsx', sheet_name =[*list_of_sheets*])
data['*sheet_name*'].drop(data.index[0], axis=0)

Надеюсь, это поможет

0 голосов
/ 20 апреля 2019

Причина проста: вы передали list read_excel.

Когда вы сделаете это, даже list с одним элементом, pandas вернет OrderedDict, содержащее по одному DataFrame для каждого листа.

Делай data = pd.read_excel('dataset.xlsx', sheet_name='Table1') и все будет хорошо.

См. документы для получения дополнительной информации.

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