如何有效地創建帶有鍵/值的字典,其中值是給定鍵的出現次數?
我目前正在這樣做:
dict_map = dict()
for car in data_frame["cars"]:
if car in dict_map :
dict_map.update({car : dict_counter.get(car) 1})
else:
dict_map.update({car : 1})
return dict_map
有沒有其他方法可以以更有效的方式或使用更少的代碼來做到這一點?
uj5u.com熱心網友回復:
這實際上非常有效,只是單調的。不要.update在這里使用,也不需要 if-else。
dict_map = {}
for car in data_frame['cars']:
dict_map[car] = dict_map.get(car, 0) 1
但這是一個如此常見的用例,標準庫包括collections.Counter它只是一個專門用于這個東西的 dict 子類,你可以使用
import collections
dict_map = collections.Counter(data_frame["cars"])
但是,由于您使用的是 Pandas,您應該首先使用內置的 Pandas API。
>>> data_frame = pd.DataFrame(dict(cars=['a','b','c','a','a','c']))
>>> data_frame['cars'].value_counts()
a 3
c 2
b 1
Name: cars, dtype: int64
>>> data_frame['cars'].value_counts().to_dict()
{'a': 3, 'c': 2, 'b': 1}
uj5u.com熱心網友回復:
from collections import Counter
dict_map = dict(Counter(data_frame["cars"])
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/312981.html
上一篇:運行時未檢測到切片上的競爭
