大熊猫根据平均值分配价值

时间:2016-09-25 21:38:43

标签: python pandas

假设我有一个数据帧列。我想创建一个新列,如果旧列中的相应值高于平均值,则给定观察值为1。但如果另一列中的值是平均值或低于该值,则该值应为0。

这样做的最快方法是什么?

1 个答案:

答案 0 :(得分:3)

假设您有以下DataFrame:

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