我有一个数据框,其中每一列代表一个用户。我试图消除一个只有 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/