Python: Combine set and array



我有一组包含唯一int32数字的'项'。我想把它和一个阵列频率合并。

table = {'items': items, 'values': frequency}
C1 = pd.DataFrame(data=table)

期望的输出是这样的(第一列包含set,第二列包含频率:

{A,B} | 25

{E,F,G} | 17

{D} | 5

但是我得到一个错误:TypeError: Set type is unordered

您不能以您想要的方式组合它们。您可能想使用的是defaultdict

from collections import defaultdict
uids = defaultdict(int)
raw = get_data()
for uid in raw:
uids[uid] += 1

这将生成一个字典,其中包含所有uid到该uid频率的映射。

如果你需要将frequency映射到与frequency一起出现的所有uid,那么你可以反转这个技巧。

frequencies = defaultdict(set)
for uid, frequency in uids.items():
frequencies[frequency].add(uid)

最新更新