首页 > 解决方案 > 更正数据框中的错误值

问题描述

我编写了以下代码来修复价格列中的错误值 150 和 -160。为了更正这些值,我使用以下语句来检测和更正价格:

我想找到一种更 Pythonic 的方式来编码。尤其是我最后一个使用令人讨厌的切片的语句......我发现第二个语句特别难以以一种简洁的方式使用

谢谢=)

data = {"Price":[100,105,103,102,150,101,-160,100],"Adj Price": [101,106.05,104.03,103.02,108.07,103.02,107.1,102]}
mydf = pd.DataFrame(data)

series = "Price"
ref = "Adj Price"
df1 = df2.copy()
max_move = 20
abs_moves = (df1[series].diff(periods=1)[1:]).abs()
wrong_index = abs_moves[abs_moves>=max_move].index   

mydf.loc[wrong_index [::2],series] = mydf.loc[wrong_index [::2],ref]*(np.array(mydf.loc[wrong_index [1::2],series]/mydf.loc[wrong_index [1::2],ref]))

标签: pythonpandas

解决方案


推荐阅读