Как перебрать вложенное поле в другом столбце, чтобы создать новый столбец на основе другого значения? - PullRequest
0 голосов
/ 17 января 2019

У меня есть столбец в df, который является вложенным json в список следующим образом:

col1     nested-filed
1        [{nested_data}]

данные во вложенном поле выглядят так:

[{'field': 1, 'timestamp': 1511404149332, 'changed-timestamp': 0, 'identities': [{'type': 'leadid', 'value': '123-456', 'timestamp': 1488815181110}, {'type': 'ID', 'value': '0987654321', 'timestamp': 1489691285116}, {'type': 'EMAIL', 'value': '1@1', 'timestamp': 1488815179334, 'is': True}]}]

По строке я хочу вытащить email и ID, чтобы новый df выглядел так:

col1     nested-filed          email           ID
1        [{nested_data}]       1@1.com         0987654321

Как бы я это сделал? У меня есть миллионы строк в кадре данных, для которых мне нужно вытащить эти поля.

1 Ответ

0 голосов
/ 17 января 2019

Вы можете попробовать это -

import ast
df.nested_filed = df.nested_filed.apply(lambda x: ast.literal_eval(x))

# Store in a new column named email
df['email'] = df.nested_filed.apply(lambda x: x[2]['value'])

# Store in a new column named ID
df['ID'] = df.nested_filed.apply(lambda x: x[1]['value'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...