2016-08-08 12 views
-3

Ich habe einen Datenrahmen in Pandas wie unten. Ich versuche, eine Zeile mit row-name = "Total" hinzuzufügen, die die Summe jeder Spalte ist. Ich verwende den folgenden Code: df.loc ["Total"] = df.sum (Achse = 1)Pandas: Summe jeder Spalte ergibt einen NaN-Wert?

Ich bekomme NaN als Summe jeder Spalte. Irgendeine Idee warum und wie man es löst?

dataframe with "Total" row

+0

Verwenden 'df.loc ["Total"] = df.type (float) .sum() 'oder' df.loc ["Total"] = df.sum() ' – jezrael

+0

Bitte verwenden Sie Textformatierung statt Bilder, um Ihre Beispiele zu zeigen. –

+0

Danke, df.astype() Funktion funktioniert @jezrael –

Antwort

0

Verwendung:

df.loc["Total"] = df.sum() 

Oder brauchen, wenn der erste String-Werte von Spalten umwandeln zu schweben:

df.loc["Total"] = df.astype(float).sum() 

Probe:

df = pd.DataFrame({'A':[1,2,3], 
        'B':[4,5,6], 
        'C':[7,8,9], 
        'D':[1,3,5], 
        'E':[5,3,6], 
        'F':[7,4,3]}) 

print (df) 
    A B C D E F 
0 1 4 7 1 5 7 
1 2 5 8 3 3 4 
2 3 6 9 5 6 3 

df.loc["Total"] = df.sum() 
print (df) 
     A B C D E F 
0  1 4 7 1 5 7 
1  2 5 8 3 3 4 
2  3 6 9 5 6 3 
Total 6 15 24 9 14 14 
+0

Wenn meine Antwort hilfreich war, nicht vergessen [accept] (http://meta.stackexchange.com/a/5235/295067) es. Vielen Dank. – jezrael

Verwandte Themen