Pandas条件语句失效:代码返回空结果求助(VSCode环境)
问题排查与解决
- 核心问题:你用字符串
'TRUE'/'FALSE'和布尔列做等值匹配,但pandas中布尔类型列存储的是Python原生布尔值True/False(无引号、首字母大写),字符串与布尔值类型不匹配,自然筛选不到任何结果。 - 修正代码:
_df2 = _df[(_df.fa == True) & (_df.fl == True) & (_df.fg == False)] - 额外验证步骤:
- 先确认目标列是否真的存在符合条件的数据,可执行以下代码查看值分布:
print(_df[['fa', 'fl', 'fg']].value_counts()) - 如果你的列实际存储的是字符串类型的
'TRUE'/'FALSE'(不推荐这种存储方式),需检查字符串大小写是否完全一致,若存在大小写混杂情况,可统一转换后再匹配:_df2 = _df[ (_df.fa.str.lower() == 'true') & (_df.fl.str.lower() == 'true') & (_df.fg.str.lower() == 'false') ]
- 先确认目标列是否真的存在符合条件的数据,可执行以下代码查看值分布:
内容的提问来源于stack exchange,提问作者user7446890
相关产品推荐
相关产品推荐

