我有一组包含唯一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)