2016-09-25 14 views
0

私はデータフレーム列を持っているとしましょう。古い列の対応する値が平均より大きい場合、特定の観測値の値が1である新しい列を作成します。ただし、他の列の値が平均以下の場合は、値は0にする必要があります。パンダは平均に基づいて値を割り当てます

これを実行する最速の方法は何ですか?

答えて

3

では、次のデータフレームを持っていると言う:平均に対する

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

比較はあなたにブールベクトルを取得します。あなたは整数にそれをキャストすることができます

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

または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  
関連する問題