Pandas 熊猫-基于多个条件添加列
尝试基于两个互斥条件向df添加布尔列:Pandas 熊猫-基于多个条件添加列,pandas,Pandas,尝试基于两个互斥条件向df添加布尔列: df['Type']='CMBX' df['SubType'].isin(['EM','NAHY']) 他们分开工作 df['Px Quoted'] = np.where(df['Type'] =='CMBX', True, False) df[df['Type']=='CMBX'].head(5) Out[72]: Batch Type SubType Px Quoted 0 NaN CMBX True 1
df['Type']='CMBX'
df['SubType'].isin(['EM','NAHY'])
df['Px Quoted'] = np.where(df['Type'] =='CMBX', True, False)
df[df['Type']=='CMBX'].head(5)
Out[72]:
Batch Type SubType Px Quoted
0 NaN CMBX True
1 NaN CMBX True
2 NaN CMBX True
3 NaN CMBX True
4 NaN CMBX True
或
但以下情况并非如此
df['Px Quoted'] = np.where(df['Type'] =='CMBX' or df['SubType'].isin(['EM','NAHY']), True, False)
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
不确定为什么它不明确,因为CMBX类型不能包含任何子类型
['EM','NAHY']
任何想法?这是因为它的子类型为空吗?带有np。其中需要使用位运算符:
df['Px Quoted'] = np.where((df['Type'] =='CMBX') | (df['SubType'].isin(['EM','NAHY'])), True, False)
在这里,我将或更改为
使用
,每个条件都用paranetheses包装,例如(df[col]='a')|(df[col2]='b')
。需要括号中的条件,如@jpp所建议的,错误或添加括号,谢谢
df['Px Quoted'] = np.where((df['Type'] =='CMBX') | (df['SubType'].isin(['EM','NAHY'])), True, False)