我目前正在研究一个示例,其中有45个Dataframe,其中包含大约60000个字符串条目。我想知道与我拥有的所有其他Dataframe(或集)相比,哪些字符串是唯一的, entry_df['strings']
在这个例子中。
我试着用超人图书馆(https://github.com/gecko984/supervenn)绘制不同集合中的唯一元素和共享元素,但我的数据太大,无法使用此库绘制。
找到这些独特元素有没有最佳的方法?我想一次至少比较9组,这样 A.intersect 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)
1条答案
按热度按时间yqlxgs2m1#
如果需要在所有集合中只放置一次的元素,可以对集合使用“^”运算。
集合1^集合2
返回集合1或集合2中所有元素的集合,但不能同时返回两者。