熊猫 - 寻找转折点

时间:2018-03-05 05:51:07

标签: python pandas

我有一个pandas专栏,我想找到数据中的每个转折点并保存到新专栏。

Index Col A
 1     1
 2     3
 3     5
 4     4
 5     8
 6     1
 7     2
 8     7
 9     5
 10    3

要找到转折点,我可以使用index -1 > index < index+1来制作

Index Col A  TP
 1     1     0
 2     3     0 
 3     5     1 #turning point
 4     4     1 
 5     8     1
 6     1     1
 7     2     0
 8     7     0
 9     5     0
 10    3     0

然而,我认为使用5点计算(index-2 > index -1 > index < index+1 < index+2或反向)可以更准确地防止这么多误报。

Index Col A  TP
 1     1     0
 2     3     0 
 3     5     0
 4     4     0 
 5     8     0
 6     1     0
 7     2     0
 8     7     1
 9     5     0
 10    3     0

如何在有这么多条件的熊猫中这样做?复杂的np.where?

1 个答案:

答案 0 :(得分:3)

你必须做一些改变:

df["TP"] = ((df["Col A"].shift(-2) < df["Col A"].shift(-1)) & 
            (df["Col A"].shift(-1) < df["Col A"]) &
            (df["Col A"].shift( 1) < df["Col A"]) &
            (df["Col A"].shift( 2) < df["Col A"].shift( 1))).astype(int)
df["TP"]
#1    0
#2    0
#3    0
#4    0
#5    0
#6    0
#7    1
#8    0
#9    0