gpt4 book ai didi

python - 将 Pandas 数据框单元格中的字典解析为新行单元格(新列)

转载 作者:太空狗 更新时间:2023-10-30 01:53:33 26 4
gpt4 key购买 nike

我有一个 Pandas Dataframe,其中有一列包含包含键值对字典的单元格,如下所示:

{"name":"Test Thorton","company":"Test Group","address":"10850 Test #325\r\n","city":"Test City","state_province":"CA","postal_code":"95670","country":"USA","email_address":"test@testtest.com","phone_number":"999-888-3333","equipment_description":"I'm a big red truck\r\n\r\nRSN# 0000","response_desired":"week","response_method":"email"}

我正在尝试解析字典,因此生成的 Dataframe 包含每个键的新列,并且行中填充了每个列的结果值,如下所示:

//Before

1 2 3 4 5
a b c d {6:y, 7:v}

//After

1 2 3 4 5 6 7
a b c d {6:y, 7:v} y v

非常感谢您的建议。

最佳答案

考虑df

df = pd.DataFrame([
['a', 'b', 'c', 'd', dict(F='y', G='v')],
['a', 'b', 'c', 'd', dict(F='y', G='v')],
], columns=list('ABCDE'))

df

A B C D E
0 a b c d {'F': 'y', 'G': 'v'}
1 a b c d {'F': 'y', 'G': 'v'}

选项 1
使用 pd.Series.apply,就地分配新列

df.E.apply(pd.Series)

F G
0 y v
1 y v

这样赋值

df[['F', 'G']] = df.E.apply(pd.Series)
df.drop('E', axis=1)

A B C D F G
0 a b c d y v
1 a b c d y v

选项 2
使用 pd.DataFrame.assign 方法对整个过程进行流水线处理

df.drop('E', 1).assign(**pd.DataFrame(df.E.values.tolist()))

A B C D F G
0 a b c d y v
1 a b c d y v

关于python - 将 Pandas 数据框单元格中的字典解析为新行单元格(新列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39640936/

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