首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:如何用匹配的键将字典列炸成列?

Python:如何用匹配的键将字典列炸成列?
EN

Stack Overflow用户
提问于 2022-10-12 18:30:48
回答 1查看 55关注 0票数 0

我在“熊猫数据”中有一篇专栏文章,它的结构如下(参见示例)。我想我在一个列中有一个嵌套的字典,我希望每个键都有自己的列。我希望所有匹配的键都是同一列。运行示例了解更多详细信息

代码语言:javascript
复制
import pandas as pd
import numpy as np 

data = ["{'age': 59, 'gender': 'Female','pain': 'No', 'date': '2022-09-29'}",
       "{'gender': 'Male', 'date': '2022-10-11'}",
       "{'age': 18, 'date': '2022-10-11', 'pain': 'No'}",
       ]

original_df = pd.DataFrame(data, columns=['test'])
original_df.head()

我想炸开dataframe,使它具有以下结构:

代码语言:javascript
复制
data = [[59,'Female','No','2022-09-29'], [np.nan,'Male',np.nan,'2022-10-11'], [18,np.nan,'2022-10-11','No']]
  
# Create the pandas DataFrame
desired_df = pd.DataFrame(data, columns=['age','gender','date','pain'])
desired_df.head()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-12 18:44:51

使用json.normalize

代码语言:javascript
复制
from ast import literal_eval

import pandas as pd


original_df["test"] = original_df["test"].apply(literal_eval)
df = original_df.join(pd.json_normalize(original_df.pop("test")))
print(df)

    age  gender pain        date
0  59.0  Female   No  2022-09-29
1   NaN    Male  NaN  2022-10-11
2  18.0     NaN   No  2022-10-11
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74046507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档