如果满足条件,大熊猫会创建一列等于另一列

As3*_*tin 4 python if-statement pandas

我有两列如下:

id, colA, colB
0, a, 13
1, a, 52
2, b, 16
3, a, 34
4, b, 946
etc...
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建第三列colC,即colBif colA == a,否则0

这是我在想的,但是不起作用:

data[data['colA']=='a']['colC'] = data[data['colA']=='a']['colB']
Run Code Online (Sandbox Code Playgroud)

我也在考虑使用np.where(),但我认为这在这里行不通。

有什么想法吗?

EdC*_*ica 9

使用loc带口罩来分配:

In [300]:
df.loc[df['colA'] == 'a', 'colC'] = df['colB']
df['colC'] = df['colC'].fillna(0)
df

Out[300]:
   id colA  colB  colC
0   0    a    13    13
1   1    a    52    52
2   2    b    16     0
3   3    a    34    34
4   4    b   946     0
Run Code Online (Sandbox Code Playgroud)

编辑

或使用np.where

In [296]:
df['colC'] = np.where(df['colA'] == 'a', df['colC'],0)
df

Out[296]:
   id colA  colB  colC
0   0    a    13    13
1   1    a    52    52
2   2    b    16     0
3   3    a    34    34
4   4    b   946     0
Run Code Online (Sandbox Code Playgroud)