我有一个这样的字典列表:
d = [{'c1': {'ignore1': 'me1', 'use': 'me'},
'c2': {'ignore2': 5., 'use': 12}},
{'c1': {'ign': 2, 'use': 'me2', 'foo': 123},
'c2': {'ignore2': 5., 'use': 14}}
]
想要构建这样的数据帧:
c1 c2
0 me 12
1 me2 14
所以我只想使用嵌套字典中的键use
,而主字典的键用作列名。你知道吗
当我这么做的时候
pd.DataFrame.from_records(d)
我收到
c1 c2
0 {u'use': u'me', u'ignore1': u'me1'} {u'use': 12, u'ignore2': 5.0}
1 {u'ign': 2, u'use': u'me2', u'foo': 123} {u'use': 14, u'ignore2': 5.0}
可能的解决方案如下:
df2 = pd.io.json.json_normalize(d).filter(regex='.use$')
df2.columns = df2.columns.str.replace('.use', "")
这给了我想要的结果。你知道吗
有没有一种直接的方法来过滤所需的密钥,例如用不同的方式使用.from_records
?你知道吗
一种方法是操作词典并在新词典上应用
pd.DataFrame
:相关问题 更多 >
编程相关推荐