python数据帧中的波浪符号

python数据帧中的波浪符号,python,pandas,Python,Pandas,我是python新手,遇到了一段代码片段 df = df[~df['InvoiceNo'].str.contains('C')] 如果我能知道波浪符号在这种情况下的用法,我将不胜感激。它的意思是按位不,将布尔掩码-Falses反转为Trues,将Trues反转为Falses 样本: df = pd.DataFrame({'InvoiceNo': ['aaC','ff','lC'], 'a':[1,2,5]}) print (df) InvoiceNo

我是python新手,遇到了一段代码片段

df = df[~df['InvoiceNo'].str.contains('C')]

如果我能知道波浪符号在这种情况下的用法,我将不胜感激。

它的意思是按位不,将布尔掩码-
False
s反转为
True
s,将
True
s反转为
False
s

样本:

df = pd.DataFrame({'InvoiceNo': ['aaC','ff','lC'],
                   'a':[1,2,5]})
print (df)
  InvoiceNo  a
0       aaC  1
1        ff  2
2        lC  5

#check if column contains C
print (df['InvoiceNo'].str.contains('C'))
0     True
1    False
2     True
Name: InvoiceNo, dtype: bool

#inversing mask
print (~df['InvoiceNo'].str.contains('C'))
0    False
1     True
2    False
Name: InvoiceNo, dtype: bool
筛选依据:


因此,输出是数据帧的所有行,这些行在列
InvoiceNo
中不包含
C
,用于反转布尔序列,请参阅。

如果要将其应用于数据帧中的所有列,可以使用

df.any(axis=1)
df = df[~(df>0).any(axis=1)]
如果val>0,则检查数据框所有列中的
,并返回布尔值。

同样,axis=0表示索引/行。

Tilde表示否定,即在本例中,
InvoiceNo
不包含
C
Dupe感谢您的参考。@Zero,可以说不是重复的问题,该问题特别涉及在pandas数据帧上操作的tilde的上下文,该数据帧的行为与标准Python中的tilde不同(例如布尔值),而链接的问题则从广义上询问tilde运算符。
df.any(axis=1)
df = df[~(df>0).any(axis=1)]