python - Pandas 只删除 NaN 和 float 0.0 的行

标签 python python-3.x pandas

我有一个数据框,其中每一列代表一个用户。我试图消除一个只有 NaN 和 0.000000 的任何列。这样用户名 1 或第一列将不会包含在数据框中,但其他列会包含。

这是数据框:

  username  1         2        3         4          5    
      date
2019-01-16  NaN       9.16667  NaN       NaN        1.000000
2019-01-17  NaN       NaN      NaN       1.000000   1.000000
2019-01-18  NaN       1.00000  0.956522  1.000000   1.000000
2019-01-19  0.000000  NaN      1.000000  NaN        NaN  
2019-01-20  0.000000  NaN      0.961538  NaN        NaN     

百分比存储为 float64:

type(df['1'].iloc[0])
numpy.float64

最佳答案

您可以先将 0 替换为 NaN,然后删除仅包含 NaN 的列:

df.loc[:,~df.replace(0,np.nan).isna().all()]

username            2         3    4    5
0        date      NaN       NaN  NaN  NaN
1  2019-01-16  9.16667       NaN  NaN  1.0
2  2019-01-17      NaN       NaN  1.0  1.0
3  2019-01-18  1.00000  0.956522  1.0  1.0
4  2019-01-19      NaN  1.000000  NaN  NaN
5  2019-01-20      NaN  0.961538  NaN  NaN

关于python - Pandas 只删除 NaN 和 float 0.0 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54519347/

相关文章:

python - 问题: dropna() method is returning NaN values

python - 检查状态与昨天相比是否发生变化,如果是,则将其显示在新的 Dataframe 中

python - 如果列的任何单元格中存在True,该如何测试?

python - 将两个项目中的公共(public)文件提取到第三个项目中,保留目录结构

python - 在 for 循环迭代期间对不同键的值执行算术/比较

python-3.x - 使用出现次数最多的像素值的图像过滤器

python - 如何增强python中内置函数的特性?

python - pymc3:如何在多级线性回归中建模相关截距和斜率

python - 动态选择 WTForms Flask SelectField

python - 从python文件中提取函数并将它们写入其他文件