2016-05-08 217 views
2

我有以下數據幀選擇第一行中的值在大熊貓數據幀

    AAPL   F  IBM 
    Date    
    2016-05-02 46.536664 13.62 143.881476 
    2016-05-03 47.302004 13.43 142.752373 
    2016-05-04 46.810001 13.31 142.871221 
    2016-05-05 46.619999 13.32 145.070003 
    2016-05-06 46.360000 13.44 147.289993 

我倒是喜歡由100至除以所述第一行和所述乘法的值每列中的計算之後,前2行應該是這樣的:

   AAPL   F  IBM 
    Date 
    2016-05-02 100   100  100 
    2016-05-03 101.63  98.60  99.21 

我很掙扎,但我無法得到它。任何幫助表示讚賞

回答

4

嘗試這樣:

df /= df.iloc[0]/100 

df = df.apply(lambda x: x/x.iloc[0]*100) 

測試:

In [51]: df 
Out[51]: 
       AAPL  F   IBM 
Date 
2016-05-02 46.536664 13.62 143.881476 
2016-05-03 47.302004 13.43 142.752373 
2016-05-04 46.810001 13.31 142.871221 
2016-05-05 46.619999 13.32 145.070003 
2016-05-06 46.360000 13.44 147.289993 

輸出方式:

In [63]: df /= df.iloc[0]/100 

In [64]: df 
Out[64]: 
        AAPL   F   IBM 
Date 
2016-05-02 100.000000 100.000000 100.000000 
2016-05-03 101.644596 98.604993 99.215255 
2016-05-04 100.587358 97.723935 99.297856 
2016-05-05 100.179074 97.797357 100.826046 
2016-05-06 99.620377 98.678414 102.368976 
+0

它似乎沒有工作。我收到以下消息: TypeError :(「不能在」,'在索引AAPL'處發生索引索引) – vsoler

+0

@vsoler,我已經更新了我的答案 - 將'.loc'更改爲'.iloc' - 它應該可以工作 – MaxU

+0

現在它可以工作,謝謝 – vsoler