繁体   English   中英

用 NaN 替换数据框中的值列表

[英]Replace list of values in a dataframe with NaN

我有一个值列表 [1,-1,2,'X']。 我想用 NaN 值替换数据框中的这些值。

这是我尝试过的

non_values = [1,-1,2,'X']
for i in non_values:
    #azdias is the name of the dataframe that I am trying to change.
    azdias.replace(i, np.NaN, inplace=True)

但是,上述解决方案不会对输出进行更改。 有没有其他方法可以做到这一点

使用带有默认NaNDataFrame.mask替换为DataFrame.isin选定值:

azdias = pd.DataFrame({'a':[1,2,3,-1],
                       'b':list('XYZX')})

non_values = [1,-1,2,'X']
azdias = azdias.mask(azdias.isin(non_values))
print (azdias)
     a    b
0  NaN  NaN
1  NaN    Y
2  3.0    Z
3  NaN  NaN

或使用DataFrame.replace

azdias = azdias.replace(non_values, np.nan)
print (azdias)
     a    b
0  NaN  NaN
1  NaN    Y
2  3.0    Z
3  NaN  NaN 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM