使用Python是否有一种在N个集合中查找唯一元素的最佳方法?

使用Python是否有一种在N个集合中查找唯一元素的最佳方法?,python,pandas,dataframe,set,intersect,Python,Pandas,Dataframe,Set,Intersect,我目前正在研究一个示例,其中我有45个数据帧,大约60000个字符串条目。我想知道与示例中的所有其他数据帧(或集合)相比,哪些字符串是唯一的 我尝试使用库supervenn()来绘制不同集合中的唯一元素和共享元素,但我的数据太大,无法使用此库绘制 有没有找到这些独特元素的最佳方法?我想一次至少比较9组,这样A.B,C,d,E,F,G,H,I=∅。我曾想过在每个集合上迭代循环并删除公共元素,但我没有找到优化内存使用的方法。我用来绘制supervenn图的代码是: entry_files = glo

我目前正在研究一个示例,其中我有45个数据帧,大约60000个字符串条目。我想知道与示例中的所有其他数据帧(或集合)相比,哪些字符串是唯一的

我尝试使用库supervenn()来绘制不同集合中的唯一元素和共享元素,但我的数据太大,无法使用此库绘制

有没有找到这些独特元素的最佳方法?我想一次至少比较9组,这样
A.B,C,d,E,F,G,H,I=∅。我曾想过在每个集合上迭代循环并删除公共元素,但我没有找到优化内存使用的方法。我用来绘制supervenn图的代码是:

entry_files = glob('../*/dataframe.csv')

allentries = []
labels = []

for f in entry_files:
    entry_df = pd.read_csv(f)
    string_set = set(entry_df['strings'].unique().tolist())
    allentries.append(string_set)
    labels.append(f'{entry_df.type.unique()}')

import supervenn

plt.figure(figsize=(16, 8))
supervenn.supervenn(allentries, labels, widths_minmax_ratio=0.45)

如果需要在所有集合中只放置一次的元素,可以对集合使用操作^

set1^set2


返回集合1或集合2中所有元素的集合,但不能同时返回两者。

我认为最理想的方法是对所有数组进行排序,然后只循环一次,并检查每个数组的每个索引。如果是dup,则执行类似pop的操作。或者,如果您不关心如何保持阵列的独立,则可以将其合并为一个阵列,进行排序,然后在单个循环中相当轻松地删除dup。有很多方法可以做到这一点,但这取决于数据和您想要实现的目标。理想情况下,最多一个循环。谢谢!!我不知道此操作。如果此解决方案对您有帮助,请不要忘记将响应标记为解决。