sec*_*guy 3 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
Run Code Online (Sandbox Code Playgroud)
百分比存储为float64:
type(df['1'].iloc[0])
numpy.float64
Run Code Online (Sandbox Code Playgroud)
您可以从替换0为开始NaN,然后删除仅包含NaNs以下内容的列:
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
Run Code Online (Sandbox Code Playgroud)