【问题标题】:Convert data frame into set using python使用python将数据框转换为集合
【发布时间】:2021-10-29 19:46:06
【问题描述】:

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

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

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

【问题讨论】:

  • 如果可能,请分享数据框
  • 您能解释一下为什么需要将数据框转换为集合吗?您期望结果集的结构是什么? Dataframe 是 2D 数据结构,但是 set 不能有嵌套的 set 所以可以说它的 1D 结构
  • 我已经用数据框编辑了我的问题。对于不安的情节,我需要在集合中输出我的输出
  • @varshaputil,所以您只想将INSTANCE_ID 列中的值转换为集合?
  • 是的。我在 csv 文件中有其他列,但只需要使用 INSTANCE_ID,因此仅使用该列创建数据框

标签: python pandas set


【解决方案1】:

由于要转换要设置的列中的值,可以使用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)

【讨论】:

  • 我需要循环执行。我的数据框名称是数据框名称:CAM-intersect/Book2.csv。我想要一个循环将所有数据帧转换为集合。不是单个数据框。
猜你喜欢
  • 1970-01-01
  • 2021-04-28
  • 2013-12-16
  • 2022-07-03
  • 2021-05-14
  • 2015-04-14
  • 1970-01-01
  • 2013-09-21
  • 2018-12-08
相关资源
最近更新 更多