Python中str.contains多条件筛选报错问题求助
问题分析与解决
你的代码问题出在str.contains()的用法上:
str.contains()默认只接受第一个参数为匹配用的字符串(或正则表达式),后面的参数是正则相关的标记(比如忽略大小写),不是额外的匹配值,所以你传多个字符串会触发语法错误。- 你的需求是精确匹配指定的几个婚姻状态值,用
isin()方法才是正确的选择,它专门用来判断列值是否在给定的列表里。
修正后的代码
adult_data_list = adult_data[(adult_data['age'] > 50) & (adult_data['Marital_status'].isin(['Divorce', 'Separated', 'Widowed', 'Never-married'])) ]
如果一定要用str.contains()(仅适用于模糊匹配场景),得把多个匹配值拼成正则的或表达式,写法如下,但不推荐用于你的精确匹配需求:
adult_data_list = adult_data[(adult_data['age'] > 50) & (adult_data['Marital_status'].str.contains('Divorce|Separated|Widowed|Never-married')) ]
内容的提问来源于stack exchange,提问作者NewToPython
相关产品推荐
相关产品推荐

