2016-07-30 19 views
1

Ich fragte mich, wie ich den Durchschnitt einer bestimmten Kategorie über Python berechnen könnte? Ich habe eine CSV-Datei demo.csvWie bekomme ich den Durchschnitt einer bestimmten Kategorie über Python

import pandas as pd 
import numpy as np 

#loading the data into data frame 
X = pd.read_csv('demo.csv') 

die beiden Spalten von Interesse sind die Category und Totals Spalte genannt:

Category Totals estimates 
2 2777 0.43 
4 1003 0.26 
4 3473 0.65 
4 2638 0.17 
1 2855 0.74 
0 2196 0.13 
0 2630 0.91 
2 2714 0.39 
3 2472 0.51 
0 1090 0.12 

Ich bin daran interessiert, den Durchschnitt der Summen mit Category 2 entspricht Ich weiß, wie man das auf Excel macht, ich würde nur filtern, um nur Kategorie 2 zu zeigen und den Durchschnitt zu bekommen (was schließlich 2745.5 ist), aber wie würde ich das über Python programmieren?

+0

Summe (x [1])/len (x [1])? Wäre x [1] eine Liste/Tupel oder so ähnlich? –

Antwort

3

können Sie durch Mittel der Spalten entsprechend Totals Spalte Ihrer Datenrahmen auf die Teilmenge der Zeilen, die Sie wollen (Category=2), gefolgt beschränken wie folgt:

df[df['Category'] == 2]['Totals'].mean() 
2745.5 
+1

Ah ich sehe! Vielen Dank!!!! – M3105

+1

Ich würde indexer benutzen (sieht besser aus): 'df.ix [df ['Kategorie'] == 2, 'Totals']. Mean()' – MaxU

1

Ich bin daran interessiert, der Durchschnitt der Summen mit Kategorie entsprechenden 2

Sie die Kategorie als Index gesetzt werden dann den Mittelwert für jede Kategorie berechnet die .loc odermit 10 Indexer:

df.set_index('Category').loc['2', 'Totals'].mean() 
=> 2745.50 

df.set_index('Category').ix['2', 'Totals'].mean() 
=> 2745.50 

Das gleiche kann mit groupby

df.groupby('Category').Totals.mean().loc['2'] 
=> 2745.50 

Hinweis erreicht werden, gehe ich davon aus Category eine Zeichenfolge ist.

Verwandte Themen