如何根据另一列正值筛选DataFrame行并将目标列转为列表
实现方法
直接使用pandas原生的布尔索引即可完成需求,不需要额外编写循环逻辑。
首先构造和描述一致的测试DataFrame:
import pandas as pd df = pd.DataFrame({ 'Word': ['First', 'Second', 'Third', 'Fourth'], 'Value': [2, 15, -5, 10], 'Another Column': [1, 2, 30, 22] })
执行筛选+提取列表的核心代码:
target_list = df.loc[df['Value'] > 0, 'Word'].tolist()
执行后target_list的值就是期望的['First', 'Second', 'Fourth']。
逻辑说明
df['Value'] > 0会逐行判断Value列的数值是否为正,返回由True/False组成的布尔序列,作为行筛选的依据df.loc[筛选条件, 列名]是pandas标准的按标签筛选语法,会直接返回符合条件的行对应的Word列值组成的Series对象- 末尾的
.tolist()方法会把pandas的Series对象转换为原生Python列表
内容的提问来源于stack exchange,提问作者blackmamba
相关产品推荐
相关产品推荐

