Создать новый столбец в датафрейме по вложенному 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
Другие вопросы по тегам