2016-05-31 47 views
0

我有日期,時間和股價這樣的熊貓數據幀:如何數據框系列,從價格的變化,以百分比大熊貓/蟒蛇

+------------+-------+-------+-------+ 
|   | 08:01 | 08:02 | 08:03 | 
+------------+-------+-------+-------+ 
| 01/01/2016 | 50 | 50.5 | 50.7 | 
+------------+-------+-------+-------+ 
| 02/01/2016 | 49.6 | 49.5 | 49.6 | 
+------------+-------+-------+-------+ 

現在我想改變價格,價格變化那天。第一個價格總是0%。它應該是這個樣子:

+------------+-------+--------+-------+ 
|   | 08:01 | 08:02 | 08:03 | 
+------------+-------+--------+-------+ 
| 01/01/2016 | 0  | 0.01 | 0.014 | 
+------------+-------+--------+-------+ 
| 02/01/2016 | 0  | -0.002 | 0  | 
+------------+-------+--------+-------+ 

其計算公式爲:(stockPrice/stockOpenPrice)-1

我如何可以編寫這種轉變?通過div與第一列

+0

也許'pandas.DataFrame.apply(FUNC,軸= 0,廣播=假,生=假,減少=無,args =(),** kwds)'(它沿着DataFrame的輸入軸應用函數)或者 - 如果需要元素攻擊 - 可以使用帶有lambda的'pandas.DataFrame.applymap(func)'?你已經嘗試過這條路線嗎?或者你嘗試了另一種方法來解決這個問題。我們很高興知道我們想支持。 – Dilettant

回答

3

使用差由iloc和最後一個。減去1選自:

print (df.div(df.iloc[:, 0], axis=0) - 1) 
      08:01  08:02 08:03 
01/01/2016 0.0 0.010000 0.014 
02/01/2016 0.0 -0.002016 0.000