微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python:组合集合和数组

如何解决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 举报,一经查实,本站将立刻删除。