gpt4 book ai didi

python - 确定跨行的唯一字典键

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

我有一个数据框,其中每一行都是一个字典,但是每个字典中的键有所不同。我想迭代每一行并获得一个包含所有唯一键的列表。有谁知道该怎么做吗?

我尝试了这段代码

np.unique(np.array(train.totals.apply(lambda x: ast.literal_eval(x).keys())))

但这会产生 dict_keys() 的唯一组合,而不是键的唯一组合。

例如,假设我有两行。如上所述,每行的列值都是一个字典。第 1 行的字典键是水果和蔬菜,第 2 行的字典键是水果、蔬菜和 Cereal 。

上面的代码会产生

dict_keys(['fruit','vegetable']) 

dict_keys(['fruit','vegetable','grain']) 

但是,我想要的输出只是一个包含水果、蔬菜和 Cereal 的列表或数组(跨行看到的唯一键)。

编辑:添加数据框的屏幕截图 enter image description here

edit2:下面的代码示例

import pandas as pd 
import numpy as np
import ast

dummy_data = [['A',str({"pageviews":"1","hits":"1"})],['B',str({"pageviews":"1","visits":"1"})]]
dummy_df = pd.DataFrame(dummy_data,columns = ['ID','totals'])

np.unique(np.array(dummy_df.totals.apply(lambda x: ast.literal_eval(x).keys())))

最佳答案

只需迭代并添加到集合中即可:

In [1]: import pandas as pd
...: import numpy as np
...: import ast
...:
...: dummy_data = [['A',str({"pageviews":"1","hits":"1"})],['B',str({"pageviews":"1","visits":"1"})]]
...: dummy_df = pd.DataFrame(dummy_data,columns = ['ID','totals'])
...:
...:

In [2]: dummy_df
Out[2]:
ID totals
0 A {'pageviews': '1', 'hits': '1'}
1 B {'pageviews': '1', 'visits': '1'}

In [3]: uniq = set()
...: for x in dummy_df.totals:
...: uniq.update(ast.literal_eval(x))
...:

In [4]: uniq
Out[4]: {'hits', 'pageviews', 'visits'}

考虑到数据的结构,这可能是您能做的最好的事情。

关于python - 确定跨行的唯一字典键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53199538/

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