python数据帧中的波浪符号
我是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
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)]