gpt4 book ai didi

python - 创建许多新列 df,在该 df 中有一个嵌套列

转载 作者:行者123 更新时间:2023-12-05 08:45:10 25 4
gpt4 key购买 nike

我有一个如下所示的数据框:

a = {'price': [1, 2],
'nested_column':
[[{'key': 'code', 'value': 'A', 'label': 'rif1'},
{'key': 'datemod', 'value': '31/09/2022', 'label': 'mod'}],
[{'key': 'code', 'value': 'B', 'label': 'rif2'},
{'key': 'datemod', 'value': '31/08/2022', 'label': 'mod'}]]}

df = pd.DataFrame(data=a)

我预期的输出应该是这样的:

b = {'price': [1, 2],
'code':["A","B"],
'datemod':["31/09/2022","31/08/2022"]}

exp_df = pd.DataFrame(data=b)

我尝试了一些代码行,不幸的是没有完成这项工作,看起来像这样:

df = pd.concat([df.drop(['nested_column'], axis=1), df['nested_column'].apply(pd.Series)], axis=1)
df = pd.concat([df.drop([0], axis=1), df[0].apply(pd.Series)], axis=1)

最佳答案

您可以 popexplode您的专栏要提供给json_normalize , 然后 pivot根据所需的键/值和 join :

# pop the json column and explode to rows
s = df.pop('nested_column').explode()

df = df.join(pd.json_normalize(s) # normalize dictionary to columns
.assign(idx=s.index) # ensure same index
.pivot(index='idx', columns='key', values='value')
)

输出:

   price code     datemod
0 1 A 31/09/2022
1 2 B 31/08/2022

关于python - 创建许多新列 df,在该 df 中有一个嵌套列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73906505/

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