-1
我有一個數據幀,DF:大熊貓時間序列 - 添加從以前的列差到新行
Ticker_x Date Close_x ES_difference
0 ES H7 10/18/2016 13:44 2128
1 ES H7 10/18/2016 13:59 2128.75 0.75
2 ES H7 10/18/2016 14:14 2125.75 -3
3 ES H7 10/18/2016 14:29 2126.5 0.75
4 ES H7 10/18/2016 14:44 2126.5 0
5 ES H7 10/18/2016 16:14 2126 -0.5
6 ES H7 10/18/2016 16:44 2126.25 0.25
7 ES H7 10/18/2016 17:59 2126.5 0.25
8 ES H7 10/18/2016 18:14 2127 0.5
9 ES H7 10/18/2016 19:14 2127.75 0.75
10 ES H7 10/18/2016 19:44 2127.75 0
11 ES H7 10/18/2016 19:59 2127.75 0
12 ES H7 10/18/2016 20:44 2129 1.25
13 ES H7 10/18/2016 21:29 2128.75 -0.25
14 ES H7 10/18/2016 21:44 2129 0.25
15 ES H7 10/18/2016 22:14 2129.5 0.5
16 ES H7 10/18/2016 22:44 2129.5 0
我試圖做一個新的欄目 - ES_Inverse_price
,是以差異列,然後從它減去Close_x
柱:
Df['ES_difference'] = Df['Close_x'].diff()
所以這就是我所做的ES_difference
列。現在,我希望有一個新的列ES_Inverse_price
從Close_x
取前值和減去差列值同一行:
Df['ES_Inverse_price'] = ''
Df['ES_Inverse_price'][0] = Df['Close_x'][0]
Df['ES_Inverse_price'][1:] = Df['ES_Inverse_price'].shift(1)-Df['ES_difference']
...所以在ES_Inverse_price
第一行是要等於第一行Close_x
。這很好,但現在我要開始減去差列得到了ES_Inverse_price
列我試圖做一個新的價值。
不幸的是,我得到參考下錯誤代碼與它的:
TypeError: ufunc 'subtract' did not contain a loop with signature matching types dtype('S32') dtype('S32') dtype('S32')
編輯:例如採用而不是被排2128.75 1,這將是2127.25。我從前一行的值中減去'Close_x'(已經是一個確定的值)的差異,而不是增加它(這會給我2128.75)。
編輯:
所以在下面通過另一個海報給出的例子,這裏就是我想要找:
\t close_p \t ticker \t difference \t ES_Inverse Price
0 \t 100 \t aapl \t NaN \t NaN
1 \t 102 \t aapl \t 2.0 \t 98.0
2 \t 103.4 \t aapl \t 1.4 \t 96.6
3 \t 101.2 \t aapl \t -2.2 \t 98.8
4 \t 106.2 \t aapl \t 5.0 \t 93.8
所以我並不想減去你的情況在「Close_p」的區別。相反,我試圖將差異加入到「ES_Inverse_price」列中。由於差異列正在被扣除,因此「ES_Inverse_price」列將逐漸與「Close_p」(或「Close_x」)列有所不同。所以我認爲,當你在shift(1)代碼中使用「Close_p」時,它會得到比我想要的結果不同的結果。我在那裏有差異列,我只是想從新的'ES_Inverse_price'列的前一個值中減去新列的值。 –
編輯:感謝您的評論,我在原帖的底部添加了一個我正在尋找的例子。 –
好吧,你正在從close_x減去es_difference(向下移動)?請參閱編輯 –