2015-09-01 10 views
5

Ich versuche, alle Werte in einem Datenrahmen in eine Zahl zu summieren.Summe aller Werte in einem Datenrahmen

So zum Beispiel mit dem Datenrahmen

  BBG.XAMS.FUR.S_pnl_pos_cost BBG.XAMS.MT.S_pnl_pos_cost 
date                
2015-03-23     -0.674996     -0.674997 
2015-03-24     82.704951     11.868748 
2015-03-25     -11.027327     84.160210 
2015-03-26     228.426675     -131.901556 
2015-03-27     -99.744986     214.579858 

Ich möchte den Wert 377,71658 zurückgegeben.

Ich habe df.sum() versucht, aber das nur Summen nach Spalte.

Jede Hilfe würde sehr geschätzt werden.

+0

'' Druck –

+0

Zugegeben, dass es eine Lösung sein, die beide Spalten als eine einzelne Aktion summiert, was falsch ist mit dem Hinzufügen? die Summen für jede Spalte zusammen als zweiten Schritt? –

Antwort

3

einfach die Spaltensummen Summe:

df.sum().sum() 
3

ich tun würde,

>>> df.values.sum() 
377.71658000000002 

, die nach unten fallen auf den zugrunde liegenden numpy Array und ist wahrscheinlich die schnellste sein, wenn der Rahmen Nur- numerisch. Aber es gibt viele andere Optionen: (. Df.sum() Summe())

>>> %timeit df.values.sum() 
100000 loops, best of 3: 6.27 µs per loop 
>>> %timeit df.sum().sum() 
10000 loops, best of 3: 109 µs per loop 
>>> %timeit df.unstack().sum() 
1000 loops, best of 3: 233 µs per loop 
>>> %timeit df.stack().sum() 
1000 loops, best of 3: 190 µs per loop 
+1

Beachten Sie, dass dies fehlschlägt, wenn Sie NaN als Wert haben. Sie könnten NaN durch Nullen ersetzen. df.fillna (0) .values.sum() – Brig

Verwandte Themen