我有一个数据帧
col0 col1 col2 col3 col4
0 1 3 6 6 0
1 0 2 8 7 3
2 0 0 4 3 4
3 4 2 2 0 4
逻辑是如果col1不为零,则返回col1。如果列1为零,则返回列2(非零)。如果col 2为零,则返回col3。我们不需要为col4做任何事
我的代码如下所示,但它只返回col1
def test(df):
if df['col1'].iloc[0] > 0:
return df['col1']
elif df['col1'].iloc[0] == 0 & df['col2'].iloc[0] > 0:
return df['col2']
elif df['col2'].iloc[0] == 0 & df['col3'].iloc[0] > 0:
return df['col3']
else:
return 0
test(new)
我试过了.any()和.all(),它也不起作用。另外,是否有任何方法可以使这段代码更高效
@ALollz idea的一个变体,因为熊猫1.2.0不推荐使用lookup:
输出
更新
要排除最后一列并返回0,请改为执行以下操作:
相关问题 更多 >
编程相关推荐