首页 > 解决方案 > 即使列中的单个值不是 NaN,如何过滤 Coulmns

问题描述

我有一个包含 500 行和 502 列的 Pandas 数据框,下面是列名的简要介绍:

['cluster', 'question1', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ....,500]

集群 - 集群编号 Question1 - 表示文本数据列 (0 - 500) - 包含 500 个问题中每个问题的余弦相似度值。

对于每个问题,我只想过滤余弦值 > 0.5(假设 x)且 < 1 的行以及任何其他问题。

我已经尝试了下面的一组代码来过滤数据

filter_boolean = final_df[(final_df.iloc[:,2:] > 0.5) &(final_df.iloc[:,2:] < 1)]

预期和实际结果如下图所示Input DataFrame 实际输出

标签: pythonpandasdataframefilterpycharm

解决方案


Pandasdropna函数使用axisandhow参数来解决这个用例。

dropna在列上使用,请使用axis=1(而不是默认的axis=0,它对行进行操作)。

要删除 where 'any'are NaN,请使用how关键字和 special 'any'

这应该可以解决您的问题。

您也可以使用布尔过滤器来执行此操作,但dropna以后可能会更清楚地为他人和您自己阅读。


推荐阅读