我有这样的字典清单
[
{
"detail": {
"name": "boo",
"id": 1
},
"other": {
"gender": "m",
"no": "234"
}
},
{
"detail": {
"name": "hoo",
"id": 2
},
"other": {
"gender": "f",
"no": "456"
}
}
]
我想以以下格式在excel文件中打印此数据
detail other
name id gender no
boo 1 m 234
hoo 2 f 456
简而言之,我想在父键列下的列中显示嵌套值。如何使用Pandas实现此目的?
还是他们可以通过它实现这一目标的其他任何图书馆,因为熊猫是一个安静而沉重的图书馆。
最佳答案
使用pd.io.json.json_normalize
-
df = pd.io.json.json_normalize(data)
这导致列名称看起来像这样-
df.columns
Index(['detail.id', 'detail.name', 'other.gender', 'other.no'], dtype='object')
我们需要使用
MultiIndex
将其转换为df.columns.str.split
-i = list(map(tuple, df.columns.str.split('.')))
呼叫
pd.MultiIndex.from_tuples
并将结果分配回-df.columns = pd.MultiIndex.from_tuples(i)
df
detail other
id name gender no
0 1 boo m 234
1 2 hoo f 456
如果您的数据更为复杂,则可能需要在列上进行另外的
sort_index
调用-df = df.sort_index(axis=1)
关于python - Pandas :在单独的列中显示嵌套的字典值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47991231/