gpt4 book ai didi

json - 将包含 json 数据的 pandas 数据框的列拆分为多个列

转载 作者:行者123 更新时间:2023-12-05 07:25:11 24 4
gpt4 key购买 nike

我加载并规范化了一个 json 数据:

json_string = json.loads(data)
df_norm = json_normalize(json_string, errors='ignore')

假设它现在有 2 列:

Group       Members

A [{'id':'1', 'metrics': '34', 'profile': 'abc'},{'id':'3',
'metrics': '32', 'profile': 'dc'}]
B [{'id':'2', 'metrics': '4', 'profile': 'bac'}]

我正在寻找一种方法来拆分“成员”列并将其合并回同一“组”下的原始数据框,例如:

Group   Members                                                                                          id     metrics     profile
A {'id':'1', 'metrics': '34', 'profile': 'abc'},{'id':'3', 'metrics': '32', 'profile': 'dc'}] 1 34 abc
A {'id':'1', 'metrics': '34', 'profile': 'abc'},{'id':'3', 'metrics': '32', 'profile': 'dc'}] 3 32 dc
B [{'id':'2', 'metrics': '4', 'profile': 'bac'}] 4 4 bac

如有任何帮助,我们将不胜感激。

最佳答案

使用:

import ast

#if necessary convert column to list of dicts
df['Members'] = df['Members'].apply(ast.literal_eval)
#create DataFrames in list comprehension
df1 = pd.concat({k:pd.DataFrame(v) for k, v in df['Members'].items()})
#join to original
df = df.join(df1.reset_index(level=1, drop=True)).reset_index(drop=True)
print (df)
Group Members id metrics profile
0 A [{'id': '1', 'metrics': '34', 'profile': 'abc'... 1 34 abc
1 A [{'id': '1', 'metrics': '34', 'profile': 'abc'... 3 32 dc
2 B [{'id': '2', 'metrics': '4', 'profile': 'bac'}] 2 4 bac

关于json - 将包含 json 数据的 pandas 数据框的列拆分为多个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54971005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com