Создать новый столбец в датафрейме по вложенному dict
Исходный файл - это данные json. Я просто конвертирую данные json в фрейм данных. В наборе данных есть два столбца. desp
другой info
, info
имеет гнездо dict.
desp info
this is a {'user_id':12349578,'group':'a','request':False}
looks nice{'user_id':23789094,'group':'b','request':False}
sunny day {'user_id':12398467,'group':'c','request':False}
Я хочу получить новый фрейм данных, который может включать только desp
а также user_id
как имя столбца. Таким образом, ожидаемый датафрейм будет выглядеть так:
desp user_id
this is a 12349578
looks nice 23789094
sunny day 12398467
Я думаю, что мне нужно использовать concat
а также join
перестроить dataframe, но все еще есть некоторые проблемы.
1 ответ
Вы можете попробовать что-то вроде этого:
#if info is a string, then you can yaml to convert to dictionary
import yaml
df = df.applymap(yaml.load)
Тогда используйте transform
:
df['user'] = df['info'].transform(lambda x: x['user_id'])
Выход:
desp info user
0 this is a {'user_id': 12349578, 'group': 'a', 'request':... 12349578
1 looks nice {'user_id': 23789094, 'group': 'b', 'request':... 23789094
2 sunny day {'user_id': 12398467, 'group': 'c', 'request':... 12398467