2022年 11月 9日

python中符号” ~ “的意义和用法

~ 在python中为反转的意思, 目前我知道的有两种用法.

一. 数值按位翻转

~ x 就是 – ( x + 1)

x = 2
print(~x)
  • 1
  • 2

-3

二. 布尔值取反

直接看案例

import pandas as pd

df = pd.DataFrame([[1,2,3,4,5,6,7,8,9,10],[1,2,3,4,5,6,7,8,9,10]], columns=['A','B','C','D','E','F','G','H','I','J'])
list1 = ['H', 'I', 'J', 'K', 'L', 'M', 'N']
df
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

我们希望从 df 中删去 list1 = [‘H’, ‘I’, ‘J’, ‘K’, ‘L’, ‘M’, ‘N’] 中的列,但是注意到df 中只有 ‘H’, ‘I’, ‘J’ 是在 list 里面的,我们需要把 ‘K’, ‘L’, ‘M’, ‘N’ 的列排除掉

df.columns.isin(list1)
  • 1

array([False, False, False, False, False, False, False, True, True, True])

~df.columns.isin(list1)
  • 1

array([ True, True, True, True, True, True, True, False, False, False])

df.columns[~df.columns.isin(list1)]
  • 1

Index([‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’], dtype=‘object’)

df[df.columns[~df.columns.isin(list1)]]
  • 1

在这里插入图片描述