有两个熊猫数据集

csv1 = pandas.read_csv('test1')
csv2 = pandas.read_csv('test2')


如何显示具有csv1字段的所有str1行,这些字段不是csv2str2字段的任何行的子字符串?

注意:我尝试使用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字段不包含在csv2str2的任何行中。

最佳答案

这个问题的挑战在于不仅要检测是否存在匹配项,还要找出匹配的项并进行相应的过滤。在理解中使用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/

10-12 01:30