【发布时间】:2018-08-08 16:58:41
【问题描述】:
尝试根据两个互斥条件将布尔列添加到 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 NaN CMBX True
2 NaN CMBX True
3 NaN CMBX True
4 NaN CMBX True
或
df['Px Quoted'] = np.where(df['SubType'].isin(['EM','NAHY']), True, False)
df[df['SubType']=='EM'].head(5)
Out[74]:
Batch Type SubType Px Quoted
21 NY1530 CDX EM True
29 NY1530 CDX EM True
36 NY1530 CDX EM True
43 NY1530 CDX EM True
50 NY1530 CDX EM 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'] 任何想法?是因为它的 Subtype 是空白的吗?
【问题讨论】:
-
使用
|,每个条件都用括号括起来,例如(df[col] == 'a') | (df[col2] == 'b').
标签: pandas