Pandas中代字号(〜)的官方文档在哪里?

时间:2018-03-12 13:51:09

标签: python pandas tilde

我很确定Pandas中的~是布尔not。我找到了几个StackOverflow问题/答案,但没有指向官方文档的指针。

完整性检查

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pandas as pd


df = pd.DataFrame([(1, 2, 1),
                   (1, 2, 2),
                   (1, 2, 3),
                   (4, 1, 612),
                   (4, 1, 612),
                   (4, 1, 1),
                   (3, 2, 1),
                   ],
                  columns=['groupid', 'a', 'b'],
                  index=['India', 'France', 'England', 'Germany', 'UK', 'USA',
                         'Indonesia'])

print(df)
filtered = df[~(df['a'] == 2)]
print(filtered)

df是

           groupid  a    b
India            1  2    1
France           1  2    2
England          1  2    3
Germany          4  1  612
UK               4  1  612
USA              4  1    1
Indonesia        3  2    1

filtered

         groupid  a    b
Germany        4  1  612
UK             4  1  612
USA            4  1    1

所以我很确定它不是布尔值。

4 个答案:

答案 0 :(得分:6)

~__invert__ dunder的运算符,它已被明确覆盖,用于在pd.DataFrame / {{1上执行矢量化逻辑反转对象。

pd.Series

注意:Dunder方法不能直接在代码中使用,总是更喜欢使用运算符。

此外,既然您已经问过,Boolean Indexing上的部分描述了它的使用。

  

另一个常见的操作是使用布尔向量来过滤   数据。运算符为:s = pd.Series([True, False]) ~s 0 False 1 True dtype: bool s.__invert__() 0 False 1 True dtype: bool |or&and ~。这些   必须使用括号进行分组。

大胆强调我的。

答案 1 :(得分:1)

我在this页面上找到了它。它大概是一半,我用ctrl + F导航到它。你是对的,它是not运算符。

答案 2 :(得分:1)

Here他们明确定义:

  

另一个常见的操作是使用布尔向量来过滤   数据。运营商是:| for or,& for和,〜for not 。这些   必须使用括号进行分组。

答案 3 :(得分:0)

如果你去:https://docs.python.org/3/library/operator.html,它说:

Bitwise Inversion   ~ a invert(a)