如何从字典列表中创建数据框 [关闭]
Posted
技术标签:
【中文标题】如何从字典列表中创建数据框 [关闭]【英文标题】:How to create a dataframe from a list of dictionaries [closed] 【发布时间】:2021-09-08 06:43:25 【问题描述】:我有一个数据框,其中一列将字典作为值。我想从这些字典中创建一个数据框。
patient.reaction patient.drug
0 ['reactionmeddrapt': 'CHEST PAIN'] ['drugcharacterization': '1', 'medicinalprodu...
1 ['reactionmeddrapt': 'DISTURBANCE IN.. ['drugcharacterization': '1', 'medi...
2 ['reactionmeddrapt: 'EXTRAMIDAL DISORDER'] ['drugcharacterization': '1', 'medicrodu...
我想从 patient.reaction 列的所有字典中创建一个数据框。
代码应该是什么?
【问题讨论】:
请匹配您所有的
[]
和引号。
到目前为止你尝试了什么?
df['patient.reaction'].explode().apply(pd.Series)
??
【参考方案1】:
DataFrame 的每一列都包含一个 list
和一个元素,即 dict
。您可以结合使用 pd.concat
和列表理解来创建所需的 DataFrame:
>> pd.DataFrame([x[0] for x in df["patient.reaction"]])
reactionmeddrapt
0 CHEST PAIN
1 DISTURBANCE IN
2 EXTRAMIDAL DISORDER
【讨论】:
【参考方案2】:IIUC,你可以试试:
df = pd.DataFrame('patient.reaction': 0: ['reactionmeddrapt': 'CHEST PAIN'],
1: ['reactionmeddrapt': 'DISTURBANCE IN..'],
2: ['reactionmeddrapt': 'EXTRAMIDAL DISORDER'])
df = df['patient.reaction'].explode().apply(pd.Series)
输出:
reactionmeddrapt
0 CHEST PAIN
1 DISTURBANCE IN..
2 EXTRAMIDAL DISORDER
【讨论】:
【参考方案3】:你可以使用.explode()
+ pd.DataFrame()
:
df_out = pd.DataFrame(df['patient.reaction'].explode().to_list())
结果:
print(df_out)
reactionmeddrapt
0 CHEST PAIN
1 DISTURBANCE IN..
2 EXTRAMIDAL DISORDER
【讨论】:
以上是关于如何从字典列表中创建数据框 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章