首页 > 解决方案 > 对现有数据框创建多个条件列

问题描述

我是 Python 建模的新手,从 Excel 切换以试图节省大量数据的时间。我对一件事情感到非常沮丧,特别是,这似乎应该是最简单的事情;

问题:我正在尝试从现有列在现有 df 中创建新的多条件列。我对一个条件没有问题,

例如

df['bsig'] = np.where(df['roc'] == eu20['mom30h'],1,0) 

但我似乎无法弄清楚多个条件。我试过了;

np.where(np.logical_and(df['bsig']==1, df['c+1']>df['Close'])),1,0
np.where(np.logical_and(df['bsig']==1, df['c+1']>df['Close']).all()),1,0

np.where(df['bsig'] ==1) and np.where(df['c+1']>df['Close']),1,0

在我得到的一系列错误中,“值的长度 (3) 与索引的长度 (5004) 不匹配”是最常见的。

有人愿意帮助我吗?

标签: pythonnumpy

解决方案


非常感谢您的帮助。我曾多次尝试将“and”更改为“&”,但是,错误可能是我的整体括号布局。

修复是:

np.where( (df['bsig'] ==1) & (df['c+1'] > df['Close'] ) ,1,0)

周末愉快!


推荐阅读