如何在python pandas脚本中的if elif条件中给出多个条件

时间:2019-07-08 09:13:50

标签: python pandas

我有一个类似的代码:

def sample_func(new_df):

   if ( new_df['name'] == 'Tom'):
      return "Yes"
   elif( new_df['name'].isin(['Harry', 'Jerry', 'Savi', 'Aavi'])):
      return "Common Name"
   else:
      return None

我收到以下错误消息:

  

ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。

如何解决此类错误?

2 个答案:

答案 0 :(得分:4)

使用numpy.select

def sample_func(new_df):

    m1 = new_df['name'] == 'Tom'
    m2 = new_df['name'].isin(['Harry', 'Jerry', 'Savi', 'Aavi'])

    new_df['new'] = np.select([m1, m2], ['Yes','Common Name'], default=None)
    return new_df

有关您的错误的更多信息是here

答案 1 :(得分:2)

我已经用any修改了您的代码以得到结果:-

def sample_func(new_df):
    if any( new_df['name'] == 'Tom'):
        return "Yes"
    elif any( new_df['name'].isin(['Harry', 'Jerry', 'Savi', 'Aavi'])):
        return "Common Name"
    else:
        return None

输出

Yes

希望对您有帮助。