~ 在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