SPSS技术问询:根据字符串中特定单词创建新数值输出变量
嘿,这个需求用pandas就能轻松实现,给你几种实用的解决方案,按需选就行:
方法1:最简洁的str.contains()转数值
这是处理这类字符串匹配问题最直接的方式,先通过str.contains()生成布尔值(存在"painter"返回True,否则False),再用astype(int)把布尔值转换成0和1:
import pandas as pd # 假设你的数据集存储在DataFrame df中 df['is_painter'] = df['Info'].str.contains('painter').astype(int)
方法2:用np.where()明确指定赋值
如果你想更清晰地定义条件满足/不满足时的返回值,可以用numpy的where函数:
import pandas as pd import numpy as np df['is_painter'] = np.where(df['Info'].str.contains('painter'), 1, 0)
方法3:自定义函数(适合后续扩展逻辑)
如果之后需要给判断逻辑加更多规则(比如同时匹配其他关键词),自定义函数结合apply()的方式可读性更强:
import pandas as pd def check_painter(text): return 1 if 'painter' in text else 0 df['is_painter'] = df['Info'].apply(check_painter)
额外提示:处理大小写问题
如果你的Info列里存在大小写混合的情况(比如"Painter"),可以给str.contains()加上case=False参数来忽略大小写:
df['is_painter'] = df['Info'].str.contains('painter', case=False).astype(int)
内容的提问来源于stack exchange,提问作者MD Claudio
相关产品推荐
相关产品推荐

