loc[~*value*]的含义和实现

Meaning and implementation of loc[~*value*]

看书中这段代码:

def split_train_test_by_id(data, test_ratio, id_column, hash=hashlib.md5):
ids = data[id_column]
in_test_set = ids.apply(lambda id_: test_set_check(id_, test_ratio, hash))
return data.loc[~in_test_set], data.loc[in_test_set]

以前从未见过这个位置[~<..>]。可能了解功能,但想要确定。另外它一般只在 pandas 或 python 中工作吗?

我在上面看到了一些很好的评论,但想确保它对初学者来说是清楚的。 ~ 将 1 翻转为 0,将 0 翻转为 1。它通常与 pandas 一起使用,表示不。在您的示例中,~in_test_set 类似于说 not in_test_set~ 的优点是它适用于一组值,而不限于单个值。见 Python wiki on bitwise operators.