Разобрать Excel в python как словарь - PullRequest
0 голосов
/ 08 февраля 2020

У меня есть таблица Excel, которая выглядит следующим образом:

    z1          z2           z3
a   [2,7,14]    [2,7,14]    [3,4]
b   4           8            7
c   5           7            5
d   10          10           10

Я попытался проанализировать ее как словарь в python, используя приведенный ниже код, и мой проанализированный запрос выглядит следующим образом:

file_path = 'b.xlsx'
df = pd.read_excel(file_path, encoding='utf-16')
df.to_dict()


{'Unnamed: 0': {0: 'a', 1: 'b', 2: 'c', 3: 'd'},
 'z1': {0: '[2,7,14]', 1: 4, 2: 5, 3: 10},
 'z2': {0: '[2,7,14]', 1: 8, 2: 7, 3: 10},
 'z3': {0: '[3,4]', 1: 7, 2: 5, 3: 10}}

Хотя я хочу, чтобы мой проанализированный результат был ниже:

{'z1': {a: '[2,7,14]', b: 4, c: 5, d: 10},
 'z2': {a: '[2,7,14]', b: 8, c: 7, d: 10},
 'z3': {a: '[3,4]', b: 7, 2: c, d: 10}}

У меня есть возможность изменить таблицу Excel для достижения желаемого результата.

1 Ответ

1 голос
/ 08 февраля 2020

Небольшое изменение в вашем коде, вам нужно установить свой первый столбец в качестве индекса, для этого вам нужно добавить эту строку

df = df.set_index(list(df)[0])

Если первый столбец имеет имя, тогда вы можете использовать

df = df.set_index('column name')

Окончательный код будет такой

file_path = 'b.xlsx'
df = pd.read_excel(file_path, encoding='utf-16')

df = df.set_index(list(df)[0])
df.to_dict()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...