чтение из файла Excel файла панд в нужном виде - PullRequest
0 голосов
/ 21 ноября 2018

Я читаю файл Excel, используя панды, содержащие 2 столбца: df

EID      List of Tuples
 1       [('Physics', 90)]
 2       [('Physics', 80), ('Math', 70)]
 3       [('Physics', 60, ('Math', 25))]

, когда я проверяю df['List of Tuples'].iat[0], это дает мне u"[('Physics', 90)]" Я получаю это как Unicode, а не как список кортежей,Когда я df['List of Tuples'].iat[0].decode('iso-8859-1').encode('utf-8'), я получаю string: "[('Physics', 90)]" Я хочу прочитать / преобразовать его в виде списка кортежей [('Physics', 90)] вместо строки или Unicode. Короче говоря, я хочу избавиться от двойных кавычек вокруг каждой записи и читать его как [('Physics', 90)] и [('Physics', 80), ('Math', 70)] и т. Д.

1 Ответ

0 голосов
/ 21 ноября 2018

Может оказаться полезным проанализировать их в объекты Python, используя ast, который может преобразовывать строковые представления обратно в объект Python.Попробуйте что-то вроде следующего (я не могу воспроизвести точно, потому что у меня нет ваших данных):

import ast
df['transformed_tuples'] = df['List of Tuples'].apply(ast.literal_eval)

Чтобы избежать этого, в первую очередь вы можете рассмотреть формат файла, который вы выбрали для чтения /напишите, например, pickle сохранит исходную информацию (я предполагаю, что она получена из DataFrame pandas, который был сохранен в excel).

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

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