- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数据框,其中每一行都是一个字典,但是每个字典中的键有所不同。我想迭代每一行并获得一个包含所有唯一键的列表。有谁知道该怎么做吗?
我尝试了这段代码
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/
1.) 我想查询,哪些fk_pathway id包含所有3个fk_link id(101,51,87)。在此示例中结果将是路径 ID 2 和路径 ID 3。 2.) 我想查询,哪些fk_pathway
我想将 2 列的网格 div 放置在与第 2 行 div 内联的位置(见图)。总行数是动态的。
我有一个 UL,在一个 div 中,我在其中设置了 DIV、UL 和 LI 的宽度。如果有的话,我想让溢出滚动,所以我将溢出设置为自动。但是,当 LI 太宽时,我似乎无法阻止 LI 跨线。这是我正在使
对于一个特殊的问题,我有一个看起来非常低效的解决方案。我有文本数据,由于各种原因,这些数据以随机间隔跨数据帧的行进行分解。然而,根据数据框中其他变量的独特组合,已知某些子集属于同一组。例如,请参阅演示
我是一名优秀的程序员,十分优秀!