создать словарь из двух столбцов с несколькими значениями
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''}