获取元组列表的value_counts()

问题描述 投票:3回答:4

我对如何从pd.Series返回value_counts非常熟悉。但是,如何从字典中的元组列表中获取值计数?

说我在字典L中具有以下元组:

L = {1: (13600, 14797),
 2: (14700, 14700),
 3: (14700, 10400),
 4: (14600, 17200),
 5: (13600, 14797),
 6: (14600, 17200),
 7: (14700, 10400),
 8: (14700, 10400),
 9: (12800, 14770)}

如何从L中获取value_counts,如下所示:

(14700, 10400) 3
(13600, 14797) 2
(14600, 17200) 2
(14700, 14700) 1
(12800, 14770) 1

这是我到目前为止所拥有的。但是我认为字典键1-9妨碍了操作,因为出现错误list object is not callable.

list = [(k, v) for k, v in L.items()] 
S = set(L)
F = {}
for i in list(S):
    F[i] = list.count(i)
python pandas dictionary tuples series
4个回答
6
投票

使用标准库中的collections.Counter

collections.Counter

2
投票

也许使用Counter(L.values()) 是个好主意?

from collections import Counter

2
投票

您可以尝试以下方法:

from collections import Counter 
dict(Counter([j for i,j in L.items()]))

2
投票

您提到L = {1: (13600, 14797), 2: (14700, 14700), 3: (14700, 10400), 4: (14600, 17200), 5: (13600, 14797), 6: (14600, 17200), 7: (14700, 10400), 8: (14700, 10400), 9: (12800, 14770)} vals = [ v for v in L.values()] counts = [] for i in vals: counts.append((i, vals.count(i))) set(counts) ,为什么不尝试

pandas.Series.value_counts()

给出:

pd.Series(L).value_counts()
© www.soinside.com 2019 - 2024. All rights reserved.