我正在尝试在数据框中创建一个具有以下逻辑的新列:
如果列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
提前谢谢你。
答案 0 :(得分:2)
迭代行会有效,但使用numpy.where()
的速度要快得多data_all['New Column'] = np.where(data_all['Column A'] > 0, data_all['Column A'], data_all['Column B'])