在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()]
我错过了什么概念?谢谢:)
答案 0 :(得分:1)
所以看起来你的值足够小,可以表示为零,但实际上并不是零。这通常发生在计算导致梯度消失时(真正的小数接近零,但不是很零),所以相等比较不会给你想要的结果。
在这种情况下,numpy有一个名为isclose
的便捷函数,可让您测试一个数字是否足够接近某个容差范围内的另一个数字。
在你的情况下,做
df = df[~np.isclose(df['overall_satisfaction'], 0)]
似乎工作。