我有一個DataFrame與每日OHLCV數據。大熊貓行間計算
s['Range'] = s['High'] - s['Low']
簡單:
我可以計算範圍。現在,我想計算出新的列,我已經叫s['OIR']
(OIR =開在範圍內)
的['OIR']
列檢查,看看我們是否在範圍內打開,並且可以通過,如果我們上面昨天開通測試做到這一點低於和低於昨天的高點。我需要引用前面的行,我不太清楚如何去做。返回值將是True/False。
謝謝。
編輯:我是StackExchange和Python的新手。不確定在何處放棄樣本數據。這是數據框的圖像。
http://i47.tinypic.com/142eb2a.png
樣本數據:字典轉換成數據幀
{'High': {<Timestamp: 2007-03-02 00:00:00>: 1384.5,
<Timestamp: 2007-03-05 00:00:00>: 1373.0},
'Last': {<Timestamp: 2007-03-02 00:00:00>: 1365.0,
<Timestamp: 2007-03-05 00:00:00>: 1351.5},
'Low': {<Timestamp: 2007-03-02 00:00:00>: 1364.25,
<Timestamp: 2007-03-05 00:00:00>: 1350.5},
'OIR': {<Timestamp: 2007-03-02 00:00:00>: False,
<Timestamp: 2007-03-05 00:00:00>: False},
'Open': {<Timestamp: 2007-03-02 00:00:00>: 1378.5,
<Timestamp: 2007-03-05 00:00:00>: 1356.75},
'Range': {<Timestamp: 2007-03-02 00:00:00>: 20.25,
<Timestamp: 2007-03-05 00:00:00>: 22.5},
'Volume': {<Timestamp: 2007-03-02 00:00:00>: 1706906,
<Timestamp: 2007-03-05 00:00:00>: 1984041}}
答:
s['OIR'] = ((s['Open'] < s['High'].shift(1)) & (s['Open'] > s['Low'].shift(1)))
你能提供一些示例數據 – diliop
@aozkan:在未來,添加例如數據一個方便的方法是選擇它的一個小塊,然後使用'.to_dict() '做一些你可以編輯成你的問題的方法,其他人可以複製和粘貼以便輕鬆地創建一個'DataFrame'。 – DSM
感謝帝斯曼會做。 – aozkan