Обратиться к элементу списка словарей

Имеется набор данных DataFrame. В нем столбец key_skills. В key_skills в каждой строке либо пустой список, либо список словарей в формате:

 [{'name': 'PHP'}, {'name': '1С-Битрикс'}, {'name': 'Git'}, {'name': 'MySQL'}, {'name': 'CSS3'}, {'name': 'ООП'}, {'name': 'API'}, {'name': 'HTML5'}]

Как считать каждый элемент name? То есть получить значения: PHP, 1С-Битрикс, Git, MySQL и т.д.

Так получаю значения словаря в столбце, но для списка словарей это не работает:

df['skills'] = df['key_skills'].map(lambda x: x.get("name", np.nan) if isinstance(x, dict) else np.nan)

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

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

Ну, соответственно, перебираете этот список и к его элементам применяете эту вашу функцию:

df['skills'] = df['key_skills'].map(lambda y: [x.get("name", np.nan) if isinstance(x, dict) else np.nan for x in y])

Ну там ещё можно что-то подкрутить, не совсем понятно, что нужно в итоге получить.

key_skills skills
0 [{'name': 'PHP'}, {'name': '1С-Битрикс'}, {'na... [PHP, 1С-Битрикс, Git, MySQL, CSS3, ООП, API, ...
1 [] []
→ Ссылка