我有一个包含数字和字符串列的数据框。在
import numpy as np
import pandas as pd
from scipy.stats import zscore
data = {'c1' : [1., 2., 3., 4.], 'c2' : [4., 3., 2., 1.], 'c3' : [5., 6., 7000., 8.],
'c4' : [8., 7., 6., 10000.], 'c5' : ['a', 'b', 'c', 'd']}
我想用NaN替换数值列中的异常值。在
^{pr2}$这个代码可以做我想做的。在
df = pd.DataFrame(data)
allcol = list(df)
numcol = [x for x in allcol if x not in ('c5')]
df[numcol] = df[numcol].mask(~df[numcol].apply(lambda x: zscore(x) < 1.5, axis=1))
不知道你是否知道更好更简单的解决方案。。。在
可以在索引中设置“c5”,然后使用:
输出:
^{pr2}$相关问题 更多 >
编程相关推荐