【发布时间】:2021-03-04 14:10:26
【问题描述】:
我有两个列 a 和 b,都是二进制变量。
a b
1 1
0 1
1 1
0 0
0 0
...
1 1
0 1
1 0
0 0
0 0
我需要在检查以下一些条件后创建一个新变量 c:
def test_func(data):
if data['a'] == 0 & data['b'] == 0:
return 1;
if data['a'] == 0 & data['b'] == 1:
return 2;
if data['a'] == 1 & data['b'] == 0:
return 3;
if data['a'] == 1 & data['b'] == 1:
return 4;
else:
return 0
data['c'] = data.apply(test_func, axis=1)
print(data['c'] )
但我只在新列 c 中得到值 1 和 4,我也得到值 0。实际上,有所有四种组合(并且没有组合得到 0)。但没有让它们进入新的 c 列。我可以知道如何正确执行此操作吗?
Desired output:
a b c
1 1 4
0 1 2
1 1 4
0 0 1
0 0 1
...
1 1 4
0 1 2
1 0 3
0 0 1
0 0 1
But what i got:
a b c
1 1 4
0 1 1
1 1 4
0 0 1
0 0 1
...
1 1 4
0 1 1
1 0 0
0 0 1
0 0 1
【问题讨论】:
-
您能否添加一个可重现的示例?这只是您数据的简化或模拟版本。
-
是的!我编辑了我的问题
标签: python loops variables apply