Получить значения Excel как словарь Python - PullRequest
1 голос
/ 23 сентября 2019
Sr. No   Name
1         a
2         b
3         c

Представьте, что это мой файл Excel.

И

Чтобы получить заголовок:

dic = pandas.read_excel(excelfile).columns

, преобразуйте файл Excel в dict:

readers = pandas.read_excel(excelfile).to_dict()

Для извлечения значений:

for reader in readers:
    reader['Name']

Так что, если я получаю такие значения, показанные в списке "индексы списка должны быть int, а не str" .Как решить эту проблему.

Ответы [ 2 ]

1 голос
/ 23 сентября 2019

A .to_dict() создаст словарь, в котором ключами являются имена столбцов, а списки значений содержат значения.

Действительно, для данного кадра данных мы получим:

>>> df.to_dict()
{'Sr. No': {0: 1, 1: 2, 2: 3}, 'Name': {0: 'a', 1: 'b', 2: 'c'}}

Возможно, вы захотите преобразовать его в список словарей.Вы можете сделать это, указав 'record':

>>> df.to_dict('record')
[{'Sr. No': 1, 'Name': 'a'}, {'Sr. No': 2, 'Name': 'b'}, {'Sr. No': 3, 'Name': 'c'}]
for reader in pandas.read_excel(csvfile).to_dict(<b>'record'</b>):
    print(reader['Name'])
0 голосов
/ 23 сентября 2019

Вы можете попробовать использовать openpyxl.Это довольно просто в openpyxl. Ссылка на следующий код (Пожалуйста, обновите код для точных значений строк и столбцов в соответствии с вашим файлом Excel, если требуется):

from openpyxl import load_workbook

wb = load_workbook("Path to excel file")
sheet1 = wb.worksheets[0]
list_dict=[]
dict={}
for row_value in range(1,sheet1.max_row+1):
    dict.update({sheet1.cell(row=row_value,column=1).value:sheet1.cell(row=row_value, column=2).value})
    list_dict.append(dict)

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