gpt4 book ai didi

python - 从数据帧中删除连续的 asc/desc 序列

转载 作者:太空宇宙 更新时间:2023-11-04 02:27:48 25 4
gpt4 key购买 nike

我正在考虑一种 pandaistic 方法(不是循环)来删除所有连续的正或负 pct 变化。所以假设我有这样的数据框:

df=pd.DataFrame([1,2,3,5,4,3,2,4,5,6,7,8,9])

我想删除所有存在连续上升/下降序列的点之间。最终输出将是 [1,5,2,9]。谢谢!

最佳答案

你可以在这里使用 scipy.signalargrelextrema 函数。

from scipy.signal import argrelextrema

arr = df.iloc[:, 0].values
i = argrelextrema(arr, np.greater_equal)[0]
j = argrelextrema(arr, np.less_equal)[0]

arr[np.sort(np.r_[i, j])]

array([1, 5, 2, 9])

如果想保留DataFrame结构,可以改用iloc索引

df.iloc[np.sort(np.r_[i, j])]

0
0 1
3 5
6 2
12 9

关于python - 从数据帧中删除连续的 asc/desc 序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49938429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com