我们分别在R和python中构建一个数据框,用1到9进行填充,有3列,对应a,b,cR代码如下mat = matrix(1:9, nrow = 3, ncol = 3,byrow = TRUE)df = as.data.frame(mat)colnames(df) "a","b","c")Python代码如下import numpy as npimport pandas as pdmat = np.array(range(1,10))mat = mat.reshape(3,3)df = pd.DataFrame(mat, columns=['a','b','c'])在R语言中,我们可以直接用df$a > 2 & df$c > 3获取一组逻辑值,然后用逻辑值进行过滤df[df$a > 2 & df$c > 3,]但是在Python中,类似的代码却会报错df.loc[df.a > 2 & df.b > 3, :]# 报错信息# ValueError: The truth value of a Series is ambiguous. # Use a.empty, a.bool(), a.item(), a.any() or a.all().看起来完全一样的代码,逻辑也似乎没啥问题,为什么会有不同的结果呢?这其实是R和Python在运算符的优先级
………………………………