2017-07-27 7 views
0

Ich bin auf der Suche nach dem besten Weg, um den Durchschnitt des Median einer Spalte in einer Liste von Datenrahmen (gleicher Spaltenname) zu nehmen.Durchschnitt des Medians einer Spalte in einer Liste von Datenrahmen

sagen wir, ich habe eine Liste von Datenrahmen list_df. Ich kann die folgende for Schleife schreiben, um die erforderliche Ausgabe zu erhalten. Ich bin mehr daran interessiert, in der Suche, wenn wir die for Schleife beseitigen

med_arr = [] 
list_df = [df1, df2, df3] 
for df in list_df: 
    med_arr.append(np.median(df['col_name'])) 
np.mean(med_arr) 

Antwort

1

Dies als Liste Verständnis getan werden könnte:

list_df = [ df1, df2, df3 ] 
med_arr = [ np.median(df['col_name']) for df in list_df ] 
np.mean(med_arr) 
2

Betrachten Sie die Beispieldaten

np.random.seed([3,1415]) 
df1 = pd.DataFrame(dict(col_name=np.random.randint(10, size=10))) 
df2 = pd.DataFrame(dict(col_name=np.random.randint(10, size=10))) 
df3 = pd.DataFrame(dict(col_name=np.random.randint(10, size=10))) 

list_df = [df1, df2, df3] 

Option 1
pandas

pd.concat([d['col_name'] for d in list_df], axis=1).median().mean() 

3.8333333333333335 

Option 2
numpy

np.median([d['col_name'].values for d in list_df], 1).mean() 

3.8333333333333335 
Verwandte Themen