Считать данные из словаря из ячейки Pandas таблицы / фрейма
В таблице есть несколько полей, одно из них может содержать данные, типа словарь. Как пример: {"source":"ppc","domain":"domain.ru"}, а может и просто строку, например "data". Нужно в новое поле вывести значение поля "source", т.е. "ppc". '.str' выдает null, можно как-то вытащить данные?
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Пример данных:
In [45]: df = pd.DataFrame({"a":[ {"source":"ppc","domain":"domain.ru"}, "data", np.nan]})
In [46]: df
Out[46]:
a
0 {'source': 'ppc', 'domain': 'domain.ru'}
1 data
2 NaN
решение:
df["source"] = \
df["a"].map(lambda x: x.get("source", np.nan)
if isinstance(x, dict) else np.nan)
результат:
In [48]: df
Out[48]:
a source
0 {'source': 'ppc', 'domain': 'domain.ru'} ppc
1 data NaN
2 NaN NaN