热线电话:13121318867

登录
2019-02-25 阅读量: 756
如何检查Pandas中每行的条件

我有一个包含一些数值的数据框,例如:

col1 col2

0 1 3

1 -2 -4

2 3 -5

我希望有一个col3包含:

1 - 如果行中的所有值都> 0,

-1 - 如果行中的所有值都是<0和

0 - 对于所有其他情况

所以,我的结果df应如下所示:

col1 col2 col3

0 1 3 1

1 -2 -4 -1

2 3 -5 0

解决办法:用途numpy.select():

df['col3']=np.select([(df.gt(0).all(axis=1)),(df.lt(0).all(axis=1))],[1,-1],0)

print(df)

col1 col2 col3

0 1 3 1

1 -2 -4 -1

2 3 -5 0

说明作为文档说:

numpy.select(condlist,choicelist,default = 0)

返回从选择列表中的元素绘制的数组,具体取决于条件。

在此条件列表(df.gt(0).all(axis=1))以及(df.lt(0).all(axis=1))其中检查你所提到的2个条件。(为了更好的练习,您只需打印条件以检查输出)。休息时我们按顺序放置选项,这里是1和-1。最后一个参数是default,默认为零,您可以指定是否需要任何其他默认值。

表现:

%timeit np.select([(df.gt(0).all(axis=1)),(df.lt(0).all(axis=1))],[1,-1],0)

#414 µs ± 18.1 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

0.0000
1
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子