Dataframe replace无法替换数据

时间:2015-07-29 17:25:02

标签: python pandas dataframe

我想在样本中用min / max替换异常值数据,但dataframe.replace不起作用。

df =  pd.DataFrame({"value": data.price.values.ravel()},index = data.major_axis.ravel())
result = df.pct_change() 

threshold = np.std(result.value) * 3

maxoutlier = result[result.value > threshold]
minoutlier = result[result.value < -threshold]

minresult = result.ix[result[abs(result.value) < threshold].idxmin()] 
maxresult = result.ix[result[abs(result.value) < threshold].idxmax()] 

result.value.replace(result[result.value > threshold].value, maxresult.value)
result.value.replace(result[result.value < -threshold].value, minresult.value)

结果[result.value&gt;阈值] .value和maxresult.value具有相同的类型:dataframe。但是,我无法弄清楚它为什么不起作用。谢谢你的帮助。

变量result是一个数据帧,例如

               value
2013-08-19       NaN
2013-08-20 -0.013342
2013-08-21  0.002654
2013-08-22  0.001073
2013-08-23 -0.003744
2013-08-26  0.003702
2013-08-27 -0.029353
2013-08-28  0.005176
.........

2014-12-29 -0.000702
2014-12-30 -0.011763
2014-12-31 -0.019453

[346 rows x 1 columns]

maxoutlier也是数据帧,例如

               value
2013-09-23  0.051114
2014-04-24  0.082200

maxresult是相同的,例如,

               value
2013-12-23  0.039175

所以我的目标是用maxresult替换maxoutlier。

0 个答案:

没有答案