создать словарь из двух столбцов с несколькими значениями

Python, Jupyter notebook

В таблице есть два столбца типа object:
|one|two|
|'01','02','03'|'100','A1','Abc'|
|'01','04'|'100','Ft'|

Нужно создать новый столбец d со словарем, в котором каждому элементу из столбца one присваивался бы соответствующий по порядку элемент из столбца two. Например:

|one|two|d|
|'01','02','03'|'100','A1','Abc'|{'01':'100','02':'A1', '03':'Abc'}|
|'01','04'|'100','Ft'|{'01':'100','04':'Ft'}|

Пробовала так:

d = dict(zip(one,two))

Но такое решение не расщепляет значения. Например, по первой строке получается:
{" '01','02','03' ":" '100','A1','Abc' "}


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

Автор решения: strawdog

Навскидку, если датафрейм:

              one               two
0  '01','02','03'  '100','A1','Abc'
1       '01','04'        '100','Ft'

то попробуйте так:

df['d'] = df.apply(lambda x: dict(zip(x[0].split(","), x[1].split(","))) , axis=1)

получите, соответственно:

    one             two                 d
0   '01','02','03'  '100','A1','Abc'    {''01'': ''100'', ''02'': ''A1'', ''03'': ''Abc''}
1   '01','04'       '100','Ft'          {''01'': ''100'', ''04'': ''Ft''}
→ Ссылка