2017-08-30 1 views
1

Ich habe eine Tabelle wie folgt zu erstellen:Wie eine Pivot-Tabelle in Python (Pandas)

train_df:

Sex Target 
M 1 
M 1 
M 1 
F 0 
F 1 
F 0 

Ich mag ein Pivot-Diagramm erstellen, so dass es Ergebnis zeigen etwas, was wie folgt aus:

Row Labels Average of Target 
    F    0.333333333 
    M     1 

ich habe einen Code wie folgt geschrieben:

temp2 = train_df.pivot_table(values='Target', index=['Sex'],aggfunc=lambda x: x.map.mean(). 

Ich bekomme Fehler als "AttributeError: 'Funktion' Objekt hat kein Attribut 'bedeuten'". Ich weiß, dass die Verwendung in der map.mean-Funktion nicht korrekt ist. Könnten Sie mir bitte helfen, dies zu beseitigen? Vielen Dank.

+3

'train_df.groupby ('Sex', as_index = False) .Target.mean() 'Warum nicht? – Zero

Antwort

4

Ausarbeiten auf den Kommentar, mit wenigen ähnlicher Weise

In [325]: train_df.groupby('Sex', as_index=False).Target.mean() 
Out[325]: 
    Sex Target 
0 F 0.333333 
1 M 1.000000 

In [326]: train_df.groupby('Sex').Target.mean().reset_index() 
Out[326]: 
    Sex Target 
0 F 0.333333 
1 M 1.000000 

In [327]: train_df.groupby('Sex', as_index=False).agg({'Target': 'mean'}) 
Out[327]: 
    Sex Target 
0 F 0.333333 
1 M 1.000000 

In [328]: train_df.groupby('Sex', as_index=False).agg({'Target': np.mean}) 
Out[328]: 
    Sex Target 
0 F 0.333333 
1 M 1.000000 

In [329]: train_df.groupby('Sex', as_index=False).agg('mean') 
Out[329]: 
    Sex Target 
0 F 0.333333 
1 M 1.000000 

Wenn Sie darauf bestehen, mit pivot_table

In [333]: train_df.pivot_table(index='Sex', values='Target', aggfunc='mean').reset_index() 
Out[333]: 
    Sex Target 
0 F 0.333333 
1 M 1.000000 
+0

Das hat funktioniert. Ich werde die Antwort in 7 Minuten akzeptieren. Vielen Dank für die Antwort mit vielen anderen Optionen. –

Verwandte Themen