首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >np.where多重条件?

np.where多重条件?
EN

Stack Overflow用户
提问于 2021-01-11 02:06:48
回答 2查看 311关注 0票数 1

我使用numpy来添加一个新列,删除另一个列。我相信只有两个论点是允许的,但我需要3个。这有可能用elif语句吗?

我需要S3是"VM",CloudWatch是“磁盘”,其他一切都是“其他”

我所拥有的:

代码语言:javascript
复制
data_1 = pd.read_csv('data.csv')

data_1['ADDED_COLUMN1'] = np.where(data_1.DIMENSION.isin(['S3', 'Glacier']), 
'VM', 'Other')

输出:

代码语言:javascript
复制
S3             VM
Glacier        VM
S3             VM
S3             VM
CloudWatch     VM
Athena       Other

我想要的:

代码语言:javascript
复制
S3             VM
Glacier        VM
S3             VM
S3             VM
CloudWatch     Disk
Athena         Other

如何再添加一个参数才能得到这个输出?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-11 05:41:58

您可以在这里使用numpy.select

代码语言:javascript
复制
conditions  = [ data_1.DIMENSION.isin(["s3","Glacier"]), data_1.DIMENSION == "CloudWatch" ]
choices = ["VM", "Disk"]

data_1["ADDED_COLUMN1"] = np.select(conditions, choices, default="Other")

data_1
    DIMENSION ADDED_COLUMN1
0          s3            VM
1     Glacier            VM
2          s3            VM
3          s3            VM
4  CloudWatch          Disk
5      Athena         Other
票数 0
EN

Stack Overflow用户

发布于 2021-01-11 02:10:33

您可以使用以下语法:

代码语言:javascript
复制
np.where((condition 1) & (condition 2))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65660509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档