python-3.x - Python:使用条件和“包含”-语句创建新列
问题描述
我想创建一个带有条件的字符串的新列。例子:
from pandas import DataFrame
GoT = {'Old_Group': ['Jon Snow', 'Sansa Stark','Arya Stark','Robb Stark','Theon Greyjoy' ]}
df = DataFrame(GoT,columns=['Old_Group'])
“New_Group”应该检查“Old_Group”是否在任何地方包含字符串“Stark”并将其分配给例如“Stark Family”。如果条件“contains = 'Stark'”不适合,则应将“new_group”分配给例如“other”
在 SQL 中,我会这样做:
Select Old_Group
,case when Old_Group like '%Stark%' then 'Stark Family' else 'other' end as New_Group
from df
谢谢
解决方案
您可以使用 np.where 和 str.contains 的组合来执行此操作。基本上你不能做的是在有问题的列(在这种情况下为旧组)上应用 np.where 并检查字符串是否包含工作 Stark。
df['New Group'] = np.where(df['Old Group'].str.contains("Stark"), 'Stark Family', 'Other')
只需确保您的列 New Group 是字符串数据类型,并且您已将 numpy 作为包导入
推荐阅读
- mysql - 日期范围内的 COUNT CASE 函数
- mingw - Codelite/Mingw 运行测试构建而不是我想要的文件
- javascript - 使用下拉菜单更改元素的颜色
- wildfly - Wildfly16 使用 mqtt 支持设置嵌入式 Artemis
- c# - 更改代码以提高性能(渴望加载)
- javascript - 决定全局变量何时应该在函数内部或函数外部
- kubernetes - 在 GKE 集群上使用 Terraform 部署 Helm 工作负载
- javascript - 如何在 JavaScript 中按顺序编写返回参数的函数?
- reactjs - React 中的默认状态是如何设置的?
- php - 打印访客当前日期