将一列中的词典列表转换为同一datafram中的多个列

2024-09-25 04:33:06 发布

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

我的数据帧有一列字典。如何将其转换为扩展数据帧?数据帧如图所示。在

A       B       C
123    abc    [{"name":"john"},{"age":"28"},{"salary":"50000"}]
345    bcd    [{"name":"alex"},{"age":"38"},{"salary":"40000"}]
567    xyx    [{"name":"Dave"},{"age":"82"},{"salary":"30000"}]

我试过以下方法

^{pr2}$

最终的输出看起来像

A       B        name   salary   age
123    abc       john    50000   28
345    bcd       alex    40000   38
567    xyx       Dave    30000   82

Tags: 数据方法nameage字典johnabcsalary
1条回答
网友
1楼 · 发布于 2024-09-25 04:33:06

IIUC,将dictlist展平为一个dict,然后我们使用数据帧构造器,只需要concat回到原来的df

from itertools import chain
s=pd.DataFrame([dict(chain(*map(dict.items,x))) for x in df.pop('C').tolist()],index=df.index)
s
  age  name salary
0  28  john  50000
1  38  alex  40000
2  82  Dave  30000
s=pd.concat([df,s],1)
s
     A    B age  name salary
0  123  abc  28  john  50000
1  345  bcd  38  alex  40000
2  567  xyx  82  Dave  30000

数据输入:

^{pr2}$

相关问题 更多 >