我根据给定列的值过滤出数据帧的某些行,如下所示:
new_df = my_df.loc[my_df['A_count'] == 0.0]
代码工作正常。然后我尝试使用以下两列中的值过滤掉行:
new_df = my_df.loc[my_df['A_count'] == 0.0 & my_df['B_count'] == 0.0 ]
然后代码给了我错误:
TypeError: cannot compare a dtyped [float64] array with a scalar of type [bool]
如何使用多个列的值实际执行过滤器?谢谢!
答案 0 :(得分:2)
正如@root所指出的......这是有效的
new_df = my_df.loc[(my_df['A_count'] == 0.0) & (my_df['B_count'] == 0.0)]
但是,您也可以使用query
我喜欢query
,因为它会自动为您过滤,查询语法通常非常直观。注意缺少括号。
my_df.query('A_count == 0 & B_count == 0')