Pandas和TypeError:&不支持的操作数类型:“ str”和“ bool”

时间:2019-08-26 11:50:54

标签: python pandas dataframe

合并:

animal    sampleNum    SampleBreed   Nume    Breed

44          423432        GG        423432    GG  
21          2132          AA        1112      AA   
...

前三个cols来自base,后两个col来自newFile。 我想通过验证一些引用来创建新的DF。我的意思是:

toNewDF = If SampleNum == Nume AND SampleBreed == Breed   

我写了这段代码:

merged.where(merged.sampleNum == merged.Nume & merged['SampleBreed'] == merged.breed)

但是我收到一个错误:TypeError: unsupported operand type(s) for &: 'str' and 'bool'

如果我将&更改为and,则会得到:

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

我试图找到任何解决方案,但是SO上的所有线程都处理不同类型的问题。

此代码在做什么错?有人可以解释一下吗?

1 个答案:

答案 0 :(得分:4)

由于运算符的优先级,您只需要用括号括起来即可。

尝试一下:

@Resource(lookup = "java:global/corsAllowedOriginList")
private String corsOriginList;

为避免这种歧义,我喜欢using .eq instead of ==,如下所示:

merged.where((merged.sampleNum == merged.Nume) & (merged['SampleBreed'] == merged.breed))