我有一个名为data的csv,它看起来像这样(但有几百条记录):
Id Value
1k {'asadf', 'copklj', 'glkjkj', 'hsijlk'}
2j {'boilk', 'dljk', 'aasadf'}
6k {'eljkj', 'tljkjlk', 'jljlij'}
我想遍历每一行,以查看该行中的值(第二列)是否匹配或者是我拥有的另一组的超集。为此,我使用以下代码提取了每一行的值:
i = 1
x = data['Value'].iloc[i]
我计划在循环中使用它,每次迭代时都会在变量i
上加1。但是,每当我执行type(x)
时,它就会显示为str
。为了对此进行更改,以便可以将其与其他电视机进行比较,我做到了
x = set(x)
和
x = set([x])
第一个出来的所有字母都分开了。第二个是
{"{'asadf', 'copklj', 'glkjkj', 'hsijlk'}"}
我想要的输出是
{'asadf', 'copklj', 'glkjkj', 'hsijlk'}
,以便我可以比较这个集合和我拥有的另一个集合。我该如何更改我的代码?
答案 0 :(得分:1)
在读取CSV文件时,请使用转换器将其重新设置为一个集合,然后应用子集操作,例如:
(?=(\d{8})?)
答案 1 :(得分:1)
将数据保存到CSV文件时,由于CSV文件不支持集合,因此您的集合被转换为字符串。您可以使用ast
将字符串转换回集合:
import ast
df['Value'] = df['Value'].apply(ast.literal_eval)