Python实现:提取DataFrame列中不在指定列表内的数值
解决方法
核心思路
利用isin()生成布尔掩码,取反后筛选出不在目标列表中的数值。
具体代码
# 定义允许的数值列表(注意变量名和代码统一) allowed_numbers = (1,2,3,4,5,6,7,8,9) # 生成布尔掩码:标记B-NUMBER列中不在allowed_numbers里的元素 mask = ~df['B-NUMBER'].isin(allowed_numbers) # 筛选出目标数值并保存到变量 fraud = df['B-NUMBER'][mask] # 若需要转为普通列表格式,可使用: # fraud = df['B-NUMBER'][mask].tolist()
错误原因说明
- 你最初用
df['B-NUMBER'] != allowed_number报错,是因为Series和列表直接做不等比较时,要求两者长度完全匹配,但你的列表长度和DataFrame列的长度不一致,所以触发报错。 isin()返回布尔值是正常行为,它的作用是标记每个元素是否在目标列表中,你需要用这个布尔结果作为索引,才能提取对应的数值。
内容的提问来源于stack exchange,提问作者Monsson
相关产品推荐
相关产品推荐

