2015-07-02 74 views
2

的最後一行的所有項目,我有以下數據框:總和數據幀

  BBG.XSWX.KABN.S BBG.XETR.TKA.S BBG.XSWX.CON.S BBG.XLON.ISAT.S 
date     
20/02/2015 -0.004881  0.008011  0.007047  -0.000307 
20/02/2015 -0.004881  0.008011  0.007047  -0.000307 
17/02/2015 -0.005821  -0.016792  -0.016111  0.001028 
18/02/2015 0.000588  0.019169  -0.000307  -0.001832 
23/02/2015 0.007468  -0.011277  -0.003273  0.004355 

我如何可以總結一個數據幀的最後一行中的所有項目(因此,在這個例子中,我得到-0.002727,這等於0.007468 + -0.011277 + -0.003273 + 0.004355)。

+1

你到目前爲止嘗試過的代碼? – heinst

+0

使用'sum()'方法對一個軸上的值進行求和。通過'axis'參數選擇哪個軸。因此,爲了得到所有行的總和,執行'a.sum(axis = 1)'。如果你只想要一行,你可以按照下面的kronosapiens的建議選擇它。 –

回答

1

只需使用iloc[-1]

In [3]:  
df.iloc[-1].sum() 

Out[3]: 
-0.0027269999999999985 

或者tail

In [8]:  
df.tail(1).sum(axis=1) 

Out[8]: 
date 
2015-02-23 -0.002727 
dtype: float64 

的原因sum需求axis=1是因爲tail返回DF而iloc[-1]返回一個系列。

0

選擇使用.ix[]語法行,以及由此帶來的一系列調用.sum()

In [0]: df = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]]) 

In [1]: df 
Out[1]: 
    0 1 2 
0 1 2 3 
1 4 5 6 
2 7 8 9 

In [2]: df.ix[2] 
Out[2]: 
0 7 
1 8 
2 9 
Name: 2, dtype: int64 

In [3]: df.ix[2].sum() 
Out[3]: 24 

如果您使用的是日期時間作爲指標值來遇到問題,你可以使用.iloc[]代替.ix[]並傳遞一個整數來按位置訪問行,而不是按索引的值訪問行。

In [4]: df.index = ['cat', 'dog', 'bear'] 

In [5]: df 
Out[5]: 
     0 1 2 
cat 1 2 3 
dog 4 5 6 
bear 7 8 9 

In [6]: df.ix['bear'] 
Out[6]: 
0 7 
1 8 
2 9 
Name: bear, dtype: int64 

In [7]: df.iloc[2] 
Out[7]: 
0 7 
1 8 
2 9 
Name: bear, dtype: int64