我有两列如下:
id, colA, colB
0, a, 13
1, a, 52
2, b, 16
3, a, 34
4, b, 946
etc...
我正在尝试创建第三列colC
,即colB
if colA == a
,否则0
。
这是我在想的,但是不起作用:
data[data['colA']=='a']['colC'] = data[data['colA']=='a']['colB']
我也在考虑使用np.where()
,但我认为这在这里行不通。
有什么想法吗?
使用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
编辑
或使用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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句