我有一个包含我要过滤的字符串的列。
我希望列“水果”包含:(“apple”或“pear”或“banana”)而不是“ananas”。
当我使用以下代码时,一切都很完美:
results_raw.where(
(col('fruits').like('%apple%')) |
(col('fruits').like('%pear%')) |
(col('fruits').like('%banana%')) |
(col('fruits').like('%orange%')) )
然而,当我添加如下的附加条件时,它不再起作用了:
results_raw.where(
(col('fruits').like('%apple%')) |
(col('fruits').like('%pear%')) |
(col('fruits').like('%banana%')) |
(col('fruits').like('%orange%')) &
(col('fruits') != ('%ananas%')) )
这似乎是一个基本问题,但我一直在努力解决“而不是”的情况。
提前感谢您的帮助!
答案 0 :(得分:3)
您可以使用~
否定(并且您需要按顺序保留括号):
(cond1 | cond2 | cond3 | cond4) & ~col('fruits').like('%ananas%')