我有一个数据框,其中有一个名为的字段,fields
它是字典列表(所有行都具有相同的格式)。数据框的结构如下:
formId fields
123 [{'number': 1, 'label': 'Last Name', 'value': 'Doe'}, {'number': 2, 'label': 'First Name', 'value': 'John'}]
我正在尝试解开该fields
列,因此它看起来像:
formId Last Name First Name
123 Doe John
我目前拥有的代码是:
for i,r in df.iterrows():
for field in r['fields']:
df.at[i, field['label']] = field['value']
但是这似乎不是最有效的方法。有没有更好的方法来实现这一点?
您可以使用 .apply 和 .concat 将字典转换为系列。最后使用 .pivot 将列转换为标题。
数据:
代码:
输出:
就我个人而言,我会构建新的数据框:
印刷:
解决方案:
使用来自 OP 的示例输入的结果:
也适用于多行。对于此示例输入:
结果: