问题描述
目前,我正在通过解析每个集合、选择每个成员、将所述成员添加或跳过到某个 memory: set
变量来解决这样的问题(以查看该数字是否已经被解析作为查看的结果)其他一些集合),然后将包含所述成员的所有集合“重新索引”为所有所述集合的并集。
在代码中:
from typing import Set
from pandas import DataFrame
df = DataFrame({"set": [frozenset([1,3]),frozenset([2,frozenset([5,4])],'data': [1,2,3]})
memory: Set[int] = set()
membership: frozenset
for membership in df["set"]: # "for each set"
localMembers = membership
for i in membership: # "for each element if not in memory"
if i not in memory:
memory.add(i)
others: frozenset
for others in [m for m in df["set"] if i in m]:
superset = localMembers.union(others)
for tochange in df.index[df["set"] == localMembers].tolist():
df.at[tochange,"set"] = superset
for tochange in df.index[df["set"] == others].tolist():
df.at[tochange,"set"] = superset
localMembers = superset
给予:
>> df
set data
0 (1,3) 1
1 (1,3) 2
2 (4,5) 3
当然,这非常慢,因此想知道我可以采用什么其他方法来加快这样的过程。我想一种方法可能是获取类别,然后在最后进行所有设置。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)