Pandas 使用 Loc 过滤但排除行中的值

Pandas filter with Loc but exclude values in rows

1vat.loc[(vat['Sum of VAT'].isin([np.nan, 0])) &
2        (vat['Comment'] == 'Transactions 0DKK') &
3        (vat['Memo (Main)'] != '- None -'), 'Comment'] = 'Travel bill'
4vat[vat["Comment"] == "Travel bill"]

我对第 3 行有疑问。当我试图排除特定列中的值时,它似乎无法正常工作。数据框的输出太大而且不正确。除了使用 !=,还有其他选择吗,我不明白为什么它不起作用?如果我要使用 == 那么它可以正常工作,但在使用 != 时不能正常工作,请帮助。

经过多次测试,我认为第 3 行在测试不同的代码后有效:

(vat['Memo (Main)'].isin(['- None -'] ) == False), 'Comment'] = 'Travel bill'

或:

(~vat['Memo (Main)'].isin(['- None -'])), 'Comment'] = 'Travel bill'

我必须回溯看看为什么数据框没有给我预期的输出。