Python - For循环如果statment没有评估

时间:2018-03-05 02:19:12

标签: python pandas loops

我正在尝试在数据框中创建一个具有以下逻辑的新列:

如果列A大于零,则使用列A.否则,使用列B.当我运行该函数时,它看起来只是else子句为真。然而,在A栏中有明显大于零的值。我觉得这里有一些基本的东西,但是我的互联网搜索没有发现任何有成效的东西,或者我的新生蟒蛇技能并没有让我明白。

def master_value():
  for i, row in data_all.iterrows():     
    if data_all[row['column A']] > 0: 
        data_all[row['New Column']] = data_all[row['Column A']]
    else:
        data_all[row['New Column']] = data_all[row['Column B']]
return data_all

提前谢谢你。

1 个答案:

答案 0 :(得分:2)

迭代行会有效,但使用numpy.where()

的速度要快得多
data_all['New Column'] = np.where(data_all['Column A'] > 0, data_all['Column A'], data_all['Column B'])