开发者社区> 问答> 正文

将具有相同键的字典列表转换为高数据帧

数据框有一列,其中包含具有相同键名的字典列表。如何将其转换为高数据帧?数据帧如图所示。

A B
1 [{"name":"john","age":"28","salary":"50000"},{"name":"Todd","age":"36","salary":"54000"}]
2 [{"name":"Alex","age":"48","salary":"70000"},{"name":"Mark","age":"89","salary":"150000"}]
3 [{"name":"jane","age":"36","salary":"20000"},{"name":"Rose","age":"28","salary":"90000"}
如何将以下数据帧转换为下面的数据帧

A name age salary
1 john 28 50000
1 Todd 36 54000
2 Alex 48 70000
2 Mark 89 150000
3 jane 36 20000
3 Rose 28 90000

展开
收起
一码平川MACHEL 2019-01-22 10:34:32 1617 0
1 条回答
写回答
取消 提交回答
  • newdf=unnesting(df,['B'])
    pd.concat([newdf,pd.DataFrame(newdf.pop('B').tolist(),index=newdf.index)],axis=1)
    A age name salary
    0 1 28 john 50000
    0 1 36 Todd 54000
    1 2 48 Alex 70000
    1 2 89 Mark 150000
    2 3 36 jane 20000
    2 3 28 Rose 90000
    更多信息我附加了自我防范功能,您也可以在我链接的页面中找到它

    def unnesting(df, explode):

    idx=df.index.repeat(df[explode[0]].str.len())
    df1=pd.concat([pd.DataFrame({x:np.concatenate(df[x].values)} )for x in explode],axis=1)
    df1.index=idx
    return df1.join(df.drop(explode,1),how='left')
    2019-07-17 23:26:08
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载