извлеките список кортежей из серии pandas, хранящейся в виде строки

#python #pandas

#python #pandas

Вопрос:

У меня есть CSV, который я прочитал в pandas в следующем формате

 import pandas as pd

data = [['A', "[('a', 1), ('b', 2)]"], ['C', "[('c', 3), ('d', 4)]"]] 

mydf = pd.DataFrame(data, columns = ['name', 'tupledat'])

  

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

пример желаемого результата: [('a', 1), ('b', 2)]

Ответ №1:

Проверьте с помощью ast

 import ast 
df.tupledat=df.tupledat.apply(ast.literal_eval)
df
Out[59]: 
  name          tupledat
0    A  [(a, 1), (b, 2)]
1    C  [(c, 3), (d, 4)]