[英]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)
但是,上述解决方案不会对输出进行更改。 有没有其他方法可以做到这一点
使用带有默认NaN
的DataFrame.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.