使用 python 将数据框转换为集合

Convert data frame into set using python

我有多个数据框,需要将其转换成集合。我已经将它转换为单个数据帧,但现在需要在循环中进行,所以如果我没有得到任何数据帧,那么将使用循环将其转换为集合。需要为单个数据框单独设置。我用过

all_elems = list(set().union(*set_names))

但不符合我的要求。我想将这些数据框转换为集合以绘制联合集合值以进行可视化。

由于要转换要设置的列中的值,可以使用 series.agg 并将 set 作为聚合传递:

file1 = df['INSTANCE_ID'].agg(set)

它将把列中的值作为一个集合。您可以对所有数据帧执行相同的操作

样本运行

>>> df =  pd.DataFrame({'INSTANCE_ID': [random.randint(0,3) for _ in range(5)]})
>>> df
   INSTANCE_ID
0            0
1            1
2            0
3            1
4            0

>>> df['INSTANCE_ID'].agg(set)
{0, 1}

由于您想要所有集合的并集,更好的选择是连接所有数据框列值,然后创建集合:

result = pd.concat([df1['INSTANCE_ID'], df2['INSTANCE_ID'], ...., dfn['INSTANCE_ID']]).agg(set)