Pandas:在单独的列中显示嵌套的字典值

2024-09-30 20:26:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个类似这样的字典列表

[
  {
    "detail": {
    "name": "boo",
    "id": 1
    },
    "other": {
      "gender": "m",
      "no": "234"
    }
  },
  {
    "detail": {
      "name": "hoo",
      "id": 2
    },
    "other": {
      "gender": "f",
      "no": "456"
    }
  }
]

我想用excel文件打印这些数据,格式如下

^{pr2}$

简而言之,我希望在父键列下的列中显示嵌套值。我怎样才能用熊猫做到这一点呢?在

或者是他们的任何其他图书馆,我可以通过它来实现这一点,因为熊猫是安静而沉重的。在


Tags: 文件数据nonameid列表字典格式
1条回答
网友
1楼 · 发布于 2024-09-30 20:26:31

使用pd.io.json.json_normalize-

df = pd.io.json.json_normalize(data)   

这会导致列名如下-

^{pr2}$

我们需要使用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) 

相关问题 更多 >