Pandas如何将两个Series对象进行与运算

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]

posted on 2021-06-28 19:36  Wendy_r  阅读(930)  评论(0编辑  收藏  举报

导航