gpt4 book ai didi

python - 从 Pandas 列中提取嵌套字典

转载 作者:行者123 更新时间:2023-12-03 02:11:21 33 4
gpt4 key购买 nike

我尝试从 pandas 数据框中的嵌套字典创建一个数据框,但我无法使其工作......

我的数据框:

    created_at                  selected
2019-08-13T12:24:53+00:00 {"982813":false,"1786112":true,"3002218":false}
2019-08-31T13:47:51+00:00 {"309279":true,"1903384":false}
...

我想使用选定的列数据创建一个新的 df,格式如下:

        created_at                  ID            Value
2019-08-13T12:24:53+00:00 982813 false
2019-08-13T12:24:53+00:00 1786112 true
2019-08-13T12:24:53+00:00 3002218 false
2019-08-31T13:47:51+00:00 309279 true
2019-08-31T13:47:51+00:00 1903384 false
...

我一直在尝试使用explode()和json_normalize()但没有成功,所以我决定使用pd.DataFrame.from_dict()和for循环,如下所示,但我收到了错误。

x = {}
for row in df.selected:
pd.DataFrame.from_dict(row, orient='index')

但我收到以下错误:

AttributeError: 'str' object has no attribute 'values'

我仍然是Python的初学者,所以如果有人提出想法/解释,我会洗耳恭听。

最佳答案

这里有一个小例子来向您展示这个想法。如果您的体积很大,则不建议:

import pandas as pd

df = pd.DataFrame([[1, {'abc':11}], [2, {'def':22, 'ghi':33}]], columns=['id', 'dct'])

lst = []

for index, row in df.iterrows():
for key, value in row['dct'].items():
lst.append([row['id'], key, value])


new = pd.DataFrame(lst, columns=['id', 'string', 'value'])

print(new)

关于python - 从 Pandas 列中提取嵌套字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58033552/

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