有两个熊猫数据集
csv1 = pandas.read_csv('test1')
csv2 = pandas.read_csv('test2')
如何显示具有
csv1
字段的所有str1
行,这些字段不是csv2
的str2
字段的任何行的子字符串?注意:我尝试使用
contains
,但似乎其参数pat
应该是字符串,而不是字符串列。例:
#csv1
id str1
1 abc
2 def
3 ghi
4 xyz
#csv2
data1 str2
69236 pghiww
9623 habcrv
6152 de
然后输出应为:
id str1
2 def
4 xyz
实际上,行2和4的
str1
字段不包含在csv2
的str2
的任何行中。 最佳答案
这个问题的挑战在于不仅要检测是否存在匹配项,还要找出匹配的项并进行相应的过滤。在理解中使用str.contains
的一个选项:
csv1 = csv1.iloc[[~csv2.str2.str.contains(x).any() for x in csv1.str1]]
print(csv1)
id str1
1 2 def
3 4 xyz
关于python - 筛选出具有字符串字段的行包含在另一字符串列的行之一中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46858780/