我有一个以日期为索引的数据框。如果元素与前一个日期中的元素明显不同(15%),我想将元素归零。例如:
df = A B
1.2 2.5
1 2
我希望新的df
如下所示:
df = A B
0 0
1 2
截至目前我的代码如下:
df = df.replace(df.where(df.abs(df.divide(df.shift(-1))>.15)), 0)
我收到以下错误:
abs() takes 1 positional argument but 2 were given
答案 0 :(得分:1)
这有效:
df = df.where((df.divide(df.shift(+1), df).abs() > 0.15), 0)
print(df)
输出:
A B
0 0 0
1 1 2