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