Ich habe einen Datenrahmen, den ich in einem Array konvertieren (das ist ein Testszenario, weil ich Probleme mit den Ergebnissen in Pandas habe). Jetzt möchte ich eine Spalte zusammenfassen.Wie summiere ich eine Spalte in numpy
Ich habe den folgenden Code:
import sys
import pandas as pd
import numpy as np
import os
from tkinter import *
#data_rbu = np.genfromtxt('tmp_fakt_daten.csv', delimiter=',', dtype=None)
data_rbu = pd.read_excel('tmp_fakt_daten.xlsx')
array_rbu = data_rbu.as_matrix()
print(array_rbu)
summe1 = np.sum(array_rbu, axis=9, dtype=float)
print(summe1)
Dies ist das Array! Ich möchte KW_WERT und NETTO_EURO zusammenfassen.
FAK_ART,FAK_DAT,LEIST_DAT,KD_CRM,MW_BW,EQ_NR,MATERIAL,KW_WERT,NETTO_EURO,TA
ZPAF,2015-12-10,2015-12-31,T-HOME ICP,B,1001380363.0,B60ETS,0.15,18.9,SDH
ZPAF,2015-12-10,2015-12-31,T-HOME ICP,B,1001380363.0,B60ETS,0.145,18.27,SDH
ZPAF,2015-12-10,2015-12-31,T-HOME ICP,B,1001380363.0,B60ETS,0.145,18.27,SDH
ZPAF,2015-12-10,2015-12-31,T-HOME ICP,B,1001380363.0,B60ETS,0.15,18.9,SDH
ZPAF,2015-12-10,2015-12-31,T-HOME ICP,B,1001380363.0,B60ETS,0.15,18.9,SDH
ZPAF,2015-12-10,2015-12-31,T-HOME ICP,B,1001380363.0,B60ETS,0.145,18.27,SDH
ZPAF,2015-12-10,2015-12-31,T-HOME ICP,B,1001380363.0,B60ETS,0.15,18.9,SDH
ZPAF,2015-12-10,2015-12-31,T-HOME ICP,E,1001380594.0,B60ETS,3.011,252.92,DSLAM/MSAN
Nach der Ausführung des Codes erhalte ich diesen Fehler:
Traceback (most recent call last):
File "C:\Users\A52113242\Desktop\PROJEKTE\[INPROGRESS] Faktura_sylvia\csv_einlesen bzgl. float\test2.py", line 12, in <module>
summe1 = np.sum(array_rbu, axis=9, dtype=float)
File "C:\Users\A52113242\AppData\Local\Downloaded Apps\Winpython\python-3.4.3\lib\site-packages\numpy\core\fromnumeric.py", line 1724, in sum
out=out, keepdims=keepdims)
File "C:\Users\A52113242\AppData\Local\Downloaded Apps\Winpython\python-3.4.3\lib\site-packages\numpy\core\_methods.py", line 32, in _sum
return umr_sum(a, axis, dtype, out, keepdims)
ValueError: 'axis' entry is out of bounds
Ich verstehe, dass das Problem der Achsnummer ist .. aber ich weiß nicht, was im genau falsch. Ich überprüfte die Dokumentation für numpy.sum ...
Ich hoffe, Sie können mir helfen!
Damian
Obwohl ich meine Gedanken unter @ Antwort JulienBernu die kommentierte I würde vorschlagen, dass Sie einfach folgendes tun: 'np_arr = data_rbu [['KW_WERT', 'NETTO_EURO']]. values # gibt Ihnen ein numpy Array mit nur den gewünschten Spalten, dann' numpy.sum (np_arr, axis = 0', und du wirst die gleiche Antwort bekommen. Hier sind einige Dokumente zu 'numpy.sum': http://docs.scipy.org/doc/numpy/reference/generated/numpy.sum.html Überprüfen Sie die Beispiele; 4. und 5. Beispiele speziell. – Kartik
Der Grund für den ValueError ist, dass Sie keine 9. Achse haben. Ihre Matrix ist 2D. Es hat nur Zeilen und Spalten. Es hat also 2 Achsen: 0 und 1. Wenn es eine 3D-Matrix wäre (Reihe, Spalte und Tiefe), dann hätte es 3 Achsen: 0, 1, 2 ... und so weiter. Du hast die Idee. Sie versuchen, die 9. Spalte zu summieren, die sich von der 9. Achse unterscheidet. Was Sie brauchen, ist 'numpy.sum (array_rbu [:, 7])' für ''KW_WERT'' und' numpy.sum (array_rbu [:, 8]) 'für'' NETTO_EURO'' ... Get it? Außerdem ist numpy 0 indiziert, also ist neunte Spalte die letzte Spalte (TA), die eine Zeichenkette ist und nicht summiert werden kann ... Schön zu helfen! – Kartik