根据Dask中的列值删除行



我正在使用dask读取一个大的csv文件。我想根据一列的值删除几行。如果该特定列的行值为空,我想删除整行。

我尝试使用.dropna:

df = df.dropna(subset=['tier1_name'],how = 'any',axis =0)

然而,我得到了这个错误:

TypeError: dropna() got an unexpected keyword argument 'axis'

所以我用.drop代替:

df.drop(df['tier1_name'].isnull(), axis = 0)

但后来得到了这个错误:

"Drop currently only works for axis=1 or when columns is not None"
NotImplementedError: Drop currently only works for axis=1 or when columns is not None

我不明白我应该用什么来执行所需的操作。帮助

这里的关键问题是,通常情况下,dask在没有评估的情况下不会知道行数或其内容,因此基于行的操作并不总是易于集成。

作为一种解决方案,可以使用带有适当掩码的.loc,这个伪代码可能会有所帮助:

mask = df['tier1_name'].notna()
df_modified = df.loc[mask]
# note that if you need to use .isna(), then the mask value
# should be negated

相关内容

  • 没有找到相关文章

最新更新