在嵌套字典

时间:2017-11-24 18:05:55

标签: python dataframe flatten

原始文件是json数据。我只是将json数据转换为dataframe。数据集中有两列。一个是desp,另一个是infoinfo有嵌套字典。



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}




我希望获得一个新的数据框,该数据框只能包含despuser_id作为列名。 所以预期的数据框将是这样的:



desp           user_id
this is a      12349578
looks nice     23789094
sunny day      12398467




我想我需要使用concatjoin来重建数据框,但仍然有一些问题。

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

#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