Tilde登录python数据帧

Nir*_*han 22 python pandas

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

df = df[~df['InvoiceNo'].str.contains('C')]
Run Code Online (Sandbox Code Playgroud)

如果我能知道在这种情况下波形符号的用法是什么,那将是非常有必要的吗?

jez*_*ael 14

这意味着按位不是,将布尔掩码 - Falses 反转为Trues, Trues 反转为Falses.

样品:

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
Run Code Online (Sandbox Code Playgroud)

过滤方式boolean indexing:

df = df[~df['InvoiceNo'].str.contains('C')]
print (df)
  InvoiceNo  a
1        ff  2
Run Code Online (Sandbox Code Playgroud)

因此输出是DataFrame的所有行,不包含C在列中InvoiceNo.