1、目的
获取高温小于30,低温大于20的行数据
2、分析
df['最高温度']<30返回的是一列Series对象,内容为bool类型,此时原DataFrame df[bool类型]就会获取高温小于30的数据
3、实现
df1 = df[(df['最低温度']>20) & (df['最高温度']<30)]
4、错误案例
4.1 pandas中不能使用and作为与运算符
df1 = df[(df['最低温度']>20) and (df['最高温度']<30)]
报错:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
4.2 运算顺序
&的优先级高于<,不加括号会导致报错
df1 = df[df['最低温度']>20 & df['最高温度']<30]
报错:
TypeError: Cannot perform 'rand_' with a dtyped [float64] array and scalar of type [bool]