python – 如果列超过特定数量的NA值,则删除该列
发布时间:2021-01-12 05:10:35 所属栏目:Python 来源:互联网
导读:我想写一个程序,如果它超过特定数量的NA值,就会删除一列.这就是我所做的. def check(x):for column in df: if df.column.isnull().sum() 2: df.drop(column,axis=1) 执行上面的代码没有错误,但在执行df.apply(check)时,会出现大量错误. P.S:我知道df.dropna
|
我想写一个程序,如果它超过特定数量的NA值,就会删除一列.这就是我所做的. def check(x):
for column in df:
if df.column.isnull().sum() > 2:
df.drop(column,axis=1)
执行上面的代码没有错误,但在执行df.apply(check)时,会出现大量错误. P.S:我知道df.dropna中的thresh争论(thresh,axis) 有什么提示吗?为什么我的代码不起作用? 谢谢 解决方法我认为最好的是使用dropna参数thresh:
因此,对于vectorize解决方案,从DataFrame的长度中减去它: N = 2 df = df.dropna(thresh=len(df)-N,axis=1) print (df) A D E F 0 a 1 5.0 a 1 b 3 3.0 a 2 c 5 6.0 a 3 d 7 9.0 b 4 e 1 2.0 b 5 f 0 NaN b 我建议使用 df = pd.DataFrame({'A':list('abcdef'),'B':[np.nan,np.nan,5,np.nan],'C':[np.nan,8,2,3],'D':[1,3,7,1,0],'E':[5,6,9,'F':list('aaabbb')})
print (df)
A B C D E F
0 a NaN NaN 1 5.0 a
1 b NaN 8.0 3 3.0 a
2 c NaN NaN 5 6.0 a
3 d 5.0 NaN 7 9.0 b
4 e 5.0 2.0 1 2.0 b
5 f NaN 3.0 0 NaN b
def check(df):
for column in df:
if df[column].isnull().sum() > 2:
df.drop(column,axis=1,inplace=True)
return df
print (df.pipe(check))
A D E F
0 a 1 5.0 a
1 b 3 3.0 a
2 c 5 6.0 a
3 d 7 9.0 b
4 e 1 2.0 b
5 f 0 NaN b (编辑:南阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- CentOS中使用virtualenv搭建python3环境
- python – TensorFlow:SKCompat折旧警告
- python – ctypes错误找不到AttributeError符号,
- python中字符的Unicode块
- python – LinkExtractor和SgmlLinkExtractor之间
- 如何在django python中用json替换simplejson?
- python – 向Numpy ndarray添加元数据注释
- database – Django:锁定表中的特定行
- python – Celery死于DBPageNotFoundError
- python – 使用numpy将alpha通道添加到RGB数组
热点阅读
