gpt4 book ai didi

python - 为每个变量找到最频繁的值(众数)

转载 作者:太空宇宙 更新时间:2023-11-04 05:52:28 25 4
gpt4 key购买 nike

我有一个类似这样的RDD

color  category
green a
green b
red a
orange a
green b
red d
green c
red d
green e

我正在尝试为每种颜色找到最常见的类别。像这样:

[green, b]  : 2
[red, d ] : 2
[orange, a] : 1

使用后我已经完成了一半

rdd.countByValue()

在这种情况下会返回这样的字典:

(color=u'green', category=u'a'): 1
(color=u'green', category=u'b'): 2
(color=u'green', category=u'c'): 1
(color=u'green', category=u'e'): 1
(color=u'red', category=u'a'): 1
(color=u'red', category=u'd'): 2
(color=u'orange', category=u'a'): 1

从这一步我不知道如何获得每种颜色最常见的类别。提前致谢。

编辑:我正在尝试使用 contentDF.groupBy('color').agg({'category' : 'max'}).collect() 的不同方法,但我相信 agg 参数是错误的,因为它给出了整个表的总体最大值。有什么建议么?我觉得我越来越接近了!

编辑:我仍在寻找解决方案...现在我有一个这样的表:

 color category frequency
green a 1
green b 2
green c 1
green e 1
red a 1
red d 2
orange a 1

谁能建议一个 Spark SQL 查询来选择每个颜色组的最大值?

最佳答案

你可以使用collections.defaultdict:

import collections
with open("your_file") as f:
my_dict = collections.defaultdict(int)
next(f)
for x in f:
my_dict[x.strip()] +=1
print my_dict

关于python - 为每个变量找到最频繁的值(众数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29474850/

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