Python:在比较期间获取ValueError

时间:2018-08-01 12:09:07

标签: python pandas

我想检查并比较pandas数据框column的长度,并检查特定列表中是否存在dataframe列的值,并且我为此编写了以下代码:

def validation(dataset,column,length): 
    dataset['A'] = 10
    if(len(column) < int(length)) & (dataset.A.isin(['10']).astype(int)):
        dataset['A']= 11


validation(df,df.name,2)

但是在执行过程中,我遇到以下错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

1 个答案:

答案 0 :(得分:0)

我认为您的解决方案应该简化-删除df,因为与and相同的长度,并且条件需要any,因为将标量与True进行比较,至少返回一个isin

另外,==用于检查多个值,因此对于检查一个值,请使用eqdef validation(dataset,length): dataset['A'] = 10 if(len(dataset) < int(length)) and dataset.A.eq('10').any(): #for check multiple values #if(len(dataset) < int(length)) and dataset.A.isin(['10', '12']).any(): dataset['A']= 11 validation(df,2) ):

    let api_url = 'http:localhost:portNumber'

   fun_add(Id, cat) {
      return this.http.post(api_url+'/go', data, 
          httpOptions).subscribe(result => {
            console.log(result);
       }, error => console.log('There was an error: '));
    }