使用两个Pandas数据集
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
确实,str1
csv2
行中的任何一行都没有包含第2行和第4行的str2
字段。
答案 0 :(得分:1)
这个问题的挑战不仅是检测是否存在匹配,而且要找出匹配的内容,并相应地进行过滤。在理解中使用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