我有一个这样的数据帧
>>> df = pd.DataFrame([100, 150, 150, 103])
>>> df
0
0 100
1 150
2 150
3 103
>>>
我想检查下一个值是小于previus值的+10%还是-10%,如果不是,用上一个值替换下一个值
这是期望的结果
0
0 100
1 100
2 100
3 103
我试过用“where”,但效果不太好
>>> df.where(abs(df / df.shift()-1) < 0.1, df.shift().fillna(method='bfill'), inplace=True)
>>> df
0
0 100
1 100
2 150
3 150
我该怎么解决?你知道吗
这是使用^{} 的手动循环方法。你知道吗
相关问题 更多 >
编程相关推荐