Парсер по данным

Имеется следующая таблица

import pandas as pd

data = {'id' : ['12', '13', '14'],
        'object' : ['[[[""], [""], [""]]]', '[[["13.21"], ["10.11"], ["11.01"]]]', '[[["3.1"], ["5.1"], ["7.1"]]]']}
data = pd.DataFrame(data)
data

Необходимо для каждого id вытащить из столбика object цифры или None.

Ожидаемый результат:

data = {'id' : ['12', '13', '14'],
        'ans1' : [None, 13.21, 3.1],
        'ans2' : [None, 10.11, 5.1],
        'ans3' : [None, 11.01, 7.1]}
data = pd.DataFrame(data)
data

Спасибо!


Ответы (1 шт):

Автор решения: MaxU
res = (data
       .join(data
             .pop("object")
             .str.extractall(r'"(\d+(?:\.\d+))?"')
             [0]
             .unstack()))

результат:

In [125]: res
Out[125]:
   id      0      1      2
0  12    NaN    NaN    NaN
1  13  13.21  10.11  11.01
2  14    3.1    5.1    7.1
→ Ссылка