我有一个200列的DF。大多数都是NaN的。我想选择所有没有NaN的列,或者至少选择最小NaN的列。我尝试过使用阈值或notnull()删除所有列,但没有成功。任何想法。
df.dropna(thresh=2, inplace=True)
df_notnull = df[df.notnull()]
DF例如:
col1 col2 col3
23 45 NaN
54 39 NaN
NaN 45 76
87 32 NaN
输出应该如下所示:
df.dropna(axis=1, thresh=2)
col1 col2
23 45
54 39
NaN 45
87 32
可以使用非NaN列创建
或者
如果希望基于特定百分比的nan删除列,则将数据超过90%的列称为空
你应该试试
df_notnull = df.dropna(how='all')
这将只得到非空行。https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.html
我想你不可能得到所有没有任何NaN的列。如果是这样的话,首先可以使用
~col.isnull.any()
获得没有任何NaN的列的名称,然后使用该列。我可以用下面的代码思考:
相关问题 更多 >
编程相关推荐