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

如何使用Pandas根据y列布尔值True提取x列值至列表

Pandas根据布尔列提取对应列值为列表

数据结构

你拥有的DataFrame(名为xy)结构如下:

xy
value1True
value2True
value3False
value4True
value5False
value6True

需求

根据y列的布尔值True,提取对应x列的值并转换为列表,期望结果:['value1', 'value2', 'value4', 'value6']

错误代码

你尝试的代码逻辑有误:

lst = (xy['x'].loc[:, xy['x'].isin(xy['y'])]).tolist()

正确解法

方法1:布尔索引直接筛选

这是最简洁的写法:

lst = xy[xy['y']]['x'].tolist()

方法2:使用loc规范索引

如果更倾向于明确的索引语法:

lst = xy.loc[xy['y'], 'x'].tolist()

错误原因

原代码中xy['x'].isin(xy['y'])是检查x列的字符串值是否存在于y列的布尔值集合中,两者类型不匹配,无法筛选出正确结果。正确逻辑是直接用y列的布尔值作为行筛选条件,提取符合条件行的x列数据后转为列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 17:17:16