Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas 熊猫-基于多个条件添加列_Pandas - Fatal编程技术网

Pandas 熊猫-基于多个条件添加列

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添加布尔列:

  • 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)