gpt4 book ai didi

python - python中不同列中列内的字典的拆分列表

转载 作者:行者123 更新时间:2023-11-30 21:57:54 25 4
gpt4 key购买 nike

我有一个像这样的数据框

data = {'col_1': [1, 2],
'col_2': [[{'KEY': 'A', 'VALUE': 'a'}], [{'KEY': 'B', 'VALUE': 'b'}]],
'col_3': [[{'KEY': 'C', 'VALUE': 'c'}], [{'KEY': 'A', 'VALUE': 'a'}]]}
pd.DataFrame.from_dict(data)

col_1 col_2 col_3
0 1 [{'KEY': 'A', 'VALUE': 'a'}] [{'KEY': 'C', 'VALUE': 'c'}]
1 2 [{'KEY': 'B', 'VALUE': 'b'}] [{'KEY': 'A', 'VALUE': 'a'}]

我想转换每列中的字典列表,以便得到以下输出

    col_1   col_2_KEY   col_2_VALUE     col_3_KEY   col_3_VALUE
0 1 A a C c
1 2 B b A a

编辑1:

可能存在列值为空的情况

data = {'col_1': [1, 2],
'col_2': [[{'KEY': 'A', 'VALUE': 'a'}], [{'KEY': 'B', 'VALUE': 'b'}]],
'col_3': [[{'KEY': 'C', 'VALUE': 'c'}], [{'KEY': 'A', 'VALUE': 'a'}]]}
pd.DataFrame.from_dict(data)

col_1 col_2 col_3
0 1 [{'KEY': 'A', 'VALUE': 'a'}] []
1 2 [{'KEY': 'B', 'VALUE': 'b'}] [{'KEY': 'A', 'VALUE': 'a'}]

预期输出

    col_1   col_2_KEY   col_2_VALUE     col_3_KEY   col_3_VALUE
0 1 A a <blank> <blank>
1 2 B b A a

最佳答案

你可以尝试:

df = pd.concat([df.drop(['col_2','col_3'], axis=1)
, df['col_2'].apply(lambda x:pd.Series(x[0] if len(x)>0 else {})).rename(columns={'KEY':'col_2_KEY','VALUE':'col_2_VALUE'})
, df['col_3'].apply(lambda x:pd.Series(x[0] if len(x)>0 else {})).rename(columns={'KEY':'col_3_KEY','VALUE':'col_3_VALUE'})
], axis=1)
print(df)

col_1 col_2_KEY col_2_VALUE col_3_KEY col_3_VALUE
0 1 A a C c
1 2 B b A a

关于python - python中不同列中列内的字典的拆分列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55116169/

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