gpt4 book ai didi

python - 从数据框列中的字典中提取值

转载 作者:行者123 更新时间:2023-12-05 01:44:22 25 4
gpt4 key购买 nike

我正在做一件非常简单的事情:向数据库请求一些东西,这个给我一个[巨大的]字典。没关系,我喜欢字典。但我不是 Python 专家。

我的问题是我想将这本字典转换成 DataFrame。没关系,我在谷歌上搜索了一下,它有效。但是在我的词典中,我还有其他词典(是的,我知道……)。

我想从那些字典(在我的数据框中)中获取“值”键的值

这是一个示例和我的尝试。提前致谢。

[[res是我的大字典,查询的结果]]

结果:

{'head': {'vars': ['id', 'marque', 'modele']},
'results': {'bindings': [{'id': {'type': 'literal', 'value': '1362'},
'marque': {'type': 'literal', 'value': 'PEUGEOT'},
'modele': {'type': 'literal', 'value': '206'}},....

pd.DataFrame(res['results']['bindings'],columns=res['head']['vars']) : enter image description here

如您所见,我的数据框中还有另一个字典!我想要的是以一种有效的方式从“值”键中获取值(事实上,我知道如何用一个大的 for 语句来做到这一点,但请不要在 python 中)。

我尝试了 res['results']['bindings']['values']res['results']['bindings'].values( )(或 .values),以及数据框上的其他内容,例如 df.values()['value'] = df.values() 但它不起作用。

最佳答案

IIUC,您可以使用 applymap 并从每个字典中提取与 value 键关联的值。

import operator

df = pd.DataFrame(res['results']['bindings'], columns=res['head']['vars'])
df = df.applymap(operator.itemgetter('value'))

这是在假设每个单元格值都是字典的情况下运行的。


您的某些词典可能不包含 value 作为键。在这种情况下,需要使用 dict.get 稍作修改:

df = df.applymap(lambda x: x.get('value', np.nan) \
if isinstance(x, dict) else np.nan)

这也将处理当 x 不是 dict 时出现的潜在问题。

关于python - 从数据框列中的字典中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46405974/

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