-1
我有以下Python代码:在大熊猫数据帧替换值
consumos=df.iloc[:,0]
df['media_movel'] = rolling_median(consumos, window=30, center=True).fillna(method='bfill').fillna(method='ffill')
desv_padrao=df.stack().std()
threshold = 1000
difference = np.abs(consumos - df['media_movel'])
corr=np.abs(df['media_movel']-desv_padrao)
df['corr']=pd.DataFrame(corr)
outlier = difference > threshold
df.mask(outlier, df['corr'], axis=1)
所以,我有一个包含时间序列数据帧和我的目的是纠正异常值(由admiting,基准数据之间的差滚动中位数必须大于1000,这是阈值)。为此,我创建了布尔变量outlier
(根据前面的解释,当出现异常值时为True),我试图用(轧制介质列 - 标准偏差)替换那些异常值为一个掩模,但结果是NaN的时间序列。我不知道为什么这些NaN出现,但我需要获得正确的数据。
任何选项都没有工作。在第一种情况下,我得到:ValueError:其他形状必须与ndarray中的自身形状相同 get中的第二种情况:ValueError:替换长度必须等于系列长度。 – Jvr
这两个表达式返回了什么:'df.shape'和'df ['corr']。shape'? – blueogive