Python - For循环If语句未评估

问题描述 投票:-1回答:1

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

如果列A大于零,则使用列A.否则,使用列B.当我运行该函数时,它看起来只是else子句为true。然而,在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

先感谢您。

python pandas loops
1个回答
2
投票

通过行迭代将起作用,尽管使用numpy.where()要快得多

data_all['New Column'] = np.where(data_all['Column A'] > 0, data_all['Column A'], data_all['Column B'])
© www.soinside.com 2019 - 2024. All rights reserved.