我对如何从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)
使用标准库中的collections.Counter
:
collections.Counter
也许使用Counter(L.values())
是个好主意?
from collections import Counter
您可以尝试以下方法:
from collections import Counter
dict(Counter([j for i,j in L.items()]))
您提到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()