Обратиться к элементу списка словарей
Имеется набор данных 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 | [] | [] |