无法删除包含零的pandas DataFrame中的行

时间:2018-05-21 03:58:42

标签: python pandas numpy dataframe floating

在python中编辑大型数据帧。如果特定列的行的值为0.0,如何删除数据框中的整行?

当我在总体满意度列中删除0.0时,编辑不会显示在大数据帧的散点图矩阵中。

我试过了:

filtered_df = filtered_df.drop([('overall_satisfaction'==0)], axis=0)

还尝试用nulls替换0.0&删除空值:

filtered_df = filtered_df.['overall_satisfaction'].replace(0.0, np.nan), axis=0)

filtered_df = filtered_df[filtered_NZ_df['overall_satisfaction'].notnull()]

我错过了什么概念?谢谢:)

1 个答案:

答案 0 :(得分:1)

所以看起来你的值足够小,可以表示为零,但实际上并不是零。这通常发生在计算导致梯度消失时(真正的小数接近零,但不是很零),所以相等比较不会给你想要的结果。

在这种情况下,numpy有一个名为isclose的便捷函数,可让您测试一个数字是否足够接近某个容差范围内的另一个数字。

在你的情况下,做

df = df[~np.isclose(df['overall_satisfaction'], 0)]

似乎工作。