基于列值(Dask)删除行

2024-06-16 11:48:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我想根据列的值删除Dask数据帧的某些行

我过去在这方面没有遇到任何问题:

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

(我认为)因为表达式返回bool,并且没有具有该值的键

 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

我做错了什么


Tags: 数据方法字符串indef情况coldask
1条回答
网友
1楼 · 发布于 2024-06-16 11:48:00

'abc' in ddf['col']查看字符串'abc'是否位于列中的任何位置,并返回单个值。如果要使用两个阵列对数据帧进行切片,请改用以下方法:

 ddf = ddf[ (ddf['col'].str.isin('abc')) | (ddf['col'].str.isin('doh'))]

相关问题 更多 >