python - 无法使用 dtyped [float64] 数组和 [bool] 类型的标量执行“rand_”
问题描述
我正在尝试使用多个条件过滤 pandas 中的数据框,但我一直收到相同的错误:Cannot perform 'rand_' with a dtyped [float64] array and scalar of type [bool]
我尝试了几种解决方案,例如更改运算符(或/和而不是|/&);我已经检查了括号...
代码:
df= pd.DataFrame(df)
filtered = (((df['a'] == 'str1') |
(df['a'] == 'str2') |
(df['a'] == 'str3') |
(df['a'] == 'str4')) &
(df['b'] >= 13))
df= df[filtered]
解决方案
如果没有有关数据框的更多信息,很难准确地说出什么不起作用。
试试.query()
方法。
df.query(
"a in ('str1', 'str2', 'str3', 'str4')").query(
"b >= 13")
推荐阅读
- css - CSS网格对齐项目的大小不同
- c++ - 如何在 C++ 中通过引用传递结构?
- c# - 是否可以一项一项地运行我的作业(基于 Scoped Background Services)?
- r - 将基于行中重复项的值分离到 R 中的新列中
- c++ - 将 char[] 数组转换为字节,然后将字节转换为 int,反之亦然
- javascript - 无论如何要更改错误代码“TypeError:a未定义”?
- nginx - Nginx 405 方法不允许,即使是 JSON 响应
- c++ - 我需要做一个深拷贝,我是否正确使用了我的复制构造函数?
- c++ - 如何在 C++11 的内存池中分配 std::map 的内部 RB_tree 节点?
- android - 在 onCreate 开始时使用 setText 无法更改我的 textView 的文本