如何解决Python:组合集合和数组
我有一组包含唯一 int32 数字的“项目”。我想将它与阵列频率合并。两者大小相同。
table = {'items': items,'values': frequency}
C1 = pd.DataFrame(data=table)
按预期输出是这样的(第一列包含集合,第二列包含频率:
{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 频率的映射。
如果您需要将频率映射到所有随频率出现的 uid,您可以颠倒这个技巧。
frequencies = defaultdict(set)
for uid,frequency in uids.items():
frequencies[frequency].add(uid)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。