python - 根据列值删除行(Dask)
问题描述
我想根据列的值删除 Dask DataFrame 的某些行。
我过去这样做没有任何问题:
ddf = ddf[ (ddf['col'] == str1) | (ddf['col'] == str2)]
我现在所拥有的有点不同。此列包含一个类似“abc,def,ghk”的字符串,如果它不包含“abc”或“doh”,我想删除它。
我尝试过类似的东西:
ddf = ddf[ ('abc' in ddf['col']) | ('doh' in ddf['col'])]
但我明白了
KeyError: True
(我认为)因为表达式返回一个布尔值并且没有具有该值的键,
和
ddf = ddf.drop(ddf.index[('abc' in ddf['col']) | ('doh' in ddf['col'])])
这给了我
NotImplementedError: Series getitem in only supported for other series objects with matching partition structure
我究竟做错了什么?
解决方案
'abc' in ddf['col']
查看字符串'abc'
是否在列中的任何位置,并返回单个值。如果您想要两个数组来切片 DataFrame,请改用:
ddf = ddf[ (ddf['col'].str.isin('abc')) | (ddf['col'].str.isin('doh'))]
推荐阅读
- ios - IOS天气应用
- node.js - node.js then() 不工作
- python - xgboost回归预测相同的值
- java - 使用 new File(directory).mkdir() 创建文件时出错
- java - Java Compute C(n,k) 和使用 biginteger 的阶乘
- javascript - 只获取 load() jquery 的文本内部值,没有标签没有类没有 ids 没有样式
- reactjs - 无法通过嵌入播放 YouTube 视频
- protocol-buffers - 使用 proto3 编译器编译 proto2 语法文件
- kotlin - Kotlin:在 lambda 中无法访问自动 getter
- apache-spark - spark 2.3.1 是否可以使用 Raw SQL 指定水印?