簡體   English   中英

比較熊貓中不同行之間的值

[英]Compare values between different rows in Pandas

我是熊貓的新手,我試圖比較行之間沒有運氣的值。
我想找到DOJI100的行與下一行之間的RSI 差異
在這種情況下, 52.157595 - 45.430342
我該怎么辦?
我在query()玩了一點,但我不知道自己在做什么...

                    Close   RSI       MOM   MACD        HAM  HMAN DOJI
20161125  10:13:00  69.87  52.157595 -0.21  0.011241    0     0   100
20161125  10:14:00  69.77  45.430342 -0.24  0.003785    0     0     0
20161125  10:15:00  69.77  45.430342 -0.10 -0.002099    0     0     0
20161125  10:16:00  69.83  49.924669 -0.02 -0.001899    0     0     0

嘗試使用diffloc

df.RSI.diff(-1).loc[df.DOJI.eq(100)]

20161125  10:13:00    6.727253
Name: RSI, dtype: float64

說明
希望diff是不言自明的。 但是, -1將索引與當前行而不是下一行對齊。 這就是說,如果我用DOJI100時的布爾系列掩蓋它,那么我就會得到答案。

我將找到行並在numpy進行操作

this_row = np.append((df.DOJI.values == 100)[:-1], False)
next_row = np.roll(this_row, 1)

rsi = df.RSI.values

pd.Series(rsi[this_row] - rsi[next_row],
          df.index.values[this_row], name='RSI')

您也可以以與diff類似的方式使用shift

(df['RSI'] - df['RSI'].shift(-1))[df['DOJI'] == 100]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM