Tilde sign in python dataframe

2020-03-01 03:20发布

Im new to python and came across a code snippet.

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

Would be much obliged if I could know whats the tilde signs usage in this context ?

标签: python pandas
2条回答
家丑人穷心不美
2楼-- · 2020-03-01 03:33

It means bitwise not, inversing boolean mask - Falses to Trues and Trues to Falses.

Sample:

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

Filter by boolean indexing:

df = df[~df['InvoiceNo'].str.contains('C')]
print (df)
  InvoiceNo  a
1        ff  2

So output is all rows of DataFrame, which not contains C in column InvoiceNo.

查看更多
做个烂人
3楼-- · 2020-03-01 03:35

It's used to invert boolean Series, see pandas-doc.

查看更多
登录 后发表回答