You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas中如何筛选布尔序列值为True的对应数据

问题场景
  • 我们在DataFrame(即问题中提到的df)中存储调研问题:你每日睡眠时间是否超过8小时? 的回答数据
  • 已完成操作:提取sleep列、生成判断回答是否为yes的布尔序列,代码及运行输出如下:
sleep8 = data["sleep"]
yes = sleep8 == 'yes'
print(yes)
0      False
1      False
2      False
3      False
4      False
   ...  
390    False
391    False
392    False
393    False
394    False
  • 待实现需求:筛选布尔序列中值为True对应的原始回答数据
实现方案

直接使用布尔序列作为掩码做行索引即可,根据需要的返回结果选择对应写法:

  1. 筛选原表中所有回答为yes的完整行数据
# 传入布尔序列做行筛选,返回所有符合条件的行
yes_filtered_df = data[yes]
  1. 仅提取sleep列中回答为yes的内容
# 对单独的sleep列做布尔筛选,返回符合条件的列值
yes_answer_series = sleep8[yes]

补充:如果不需要保留中间的布尔序列变量,可以直接写链式逻辑一步完成筛选,效果完全一致:

yes_filtered_df = data[data["sleep"] == 'yes']

只要布尔序列和被筛选对象的行数、索引匹配,pandas就会自动保留所有判断结果为True的行,丢弃结果为False的行。

内容的提问来源于stack exchange,提问作者inthenickoftime

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.21 16:16:02