【问题标题】:Unable to drop rows in pandas DataFrame which contain zeros无法删除包含零的 pandas DataFrame 中的行
【发布时间】:2018-05-21 03:58:41
【问题描述】:

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

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

我试过了:

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

还尝试用空值替换 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()]

我缺少什么概念?谢谢:)

【问题讨论】:

  • @coldspeed 你修好了!!非常感谢你!我是这个网站的新手,我一定会回来的。 =D

标签: python pandas numpy dataframe floating


【解决方案1】:

因此,您的值似乎小到可以表示为零,但实际上并不是零。这通常发生在计算导致梯度消失(接近零但不完全为零的非常小的数字)时,因此相等比较不会给您想要的结果。

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

在你的情况下,做

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

似乎有效。

【讨论】:

    猜你喜欢
    • 2023-02-04
    • 2015-06-01
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 2022-11-17
    • 2020-09-15
    • 2023-03-19
    相关资源
    最近更新 更多