我有一个数据框如下
In [19]: data_frame
Out[19]:
_id hero
0 55c97138e5fecec26959f3b0 {u'info': {u'id': u'0001', u'name': u'superman'}}
为了提交条目的名称,我执行以下列表理解。有这么简单的方法吗?因为此方法不会针对更多嵌套属性进行缩放
In [27]: [y['name'] for y in [x['info'] for x in data_frame['hero']]]
Out[27]: [u'superman']
非常感谢任何见解。 谢谢。
答案 0 :(得分:3)
您可以将对象解包到DataFrame中,如下所示:
df[(['_id', 'name'])] = df.hero.apply(
lambda x: pd.Series(x['info'].values(), index=x['info'].keys())
)
id name _id hero
0 55c97138e5fecec26959f3b0 superman 0001 {u'info': {u'id': u'0001', u'name': u'superman'}}
然后访问像列这样的元素。
答案 1 :(得分:2)
如果没有更实际的数据,很难判断,但也许这样可行:
>>> df.hero.apply(lambda x: x.get('info').get('name'))
0 superman
Name: hero, dtype: object