2016-09-25 111 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