2016-09-25 4 views
0

Angenommen, ich habe eine Datenframe-Spalte. Ich möchte eine neue Spalte erstellen, in der der Wert für eine bestimmte Beobachtung 1 ist, wenn der entsprechende Wert in der alten Spalte über dem Durchschnitt liegt. Der Wert sollte jedoch 0 sein, wenn der Wert in der anderen Spalte durchschnittlich oder niedriger ist.Pandas zuweisen Wert basierend auf Mittelwert

Was ist der schnellste Weg, dies zu tun?

Antwort

3

Sagen Sie bitte die folgenden Datenrahmen haben:

df = pd.DataFrame({'A': [1, 4, 6, 2, 8, 3, 7, 1, 5]}) 
df['A'].mean() 
Out: 4.111111111111111 

Vergleich gegen den Mittelwert erhalten Sie einen boolean Vektor erhalten. Sie können die zu gieße GANZ:

df['B'] = (df['A'] > df['A'].mean()).astype(int) 

oder verwenden np.where:

df['B'] = np.where(df['A'] > df['A'].mean(), 1, 0) 

df 
Out: 
    A B 
0 1 0 
1 4 0 
2 6 1 
3 2 0 
4 8 1 
5 3 0 
6 7 1 
7 1 0 
8 5 1  
Verwandte Themen