对数据帧最后一行中的所有项求和

时间:2015-07-02 18:04:23

标签: python pandas

我有以下数据框:

            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)。

2 个答案:

答案 0 :(得分: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]返回系列。

答案 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