如何使用布尔语句筛选DataFrame列数据并返回符合条件的条目
Pandas DataFrame布尔条件筛选方法
核心实现逻辑
直接基于目标列构造布尔掩码,用掩码匹配对应行即可,针对你提的score列筛选value != 0的需求,具体操作如下:
步骤1:构造布尔判断序列
mask = dataframe['score'] != 0
生成的mask是和原DataFrame行数完全对应的布尔序列,满足筛选条件的行位置为True,不满足为False。
步骤2:按需提取目标数据
- 提取满足条件的完整行数据(保留所有列):
filtered_df = dataframe[mask] - 仅提取满足条件的score列的索引和对应值(返回带索引的Series对象),两种等价写法均可:
# 写法1:用loc显式指定行和列 result = dataframe.loc[mask, 'score'] # 写法2:直接对目标列做筛选 result = dataframe['score'][dataframe['score'] != 0]
示例输出
针对你给出的score列样例数据,运行后返回的result结果如下:
1 1 3 3 101 9 102 7 Name: score, dtype: int64
如果需要单独提取索引或值的列表:
- 提取索引列表:
result.index.tolist(),输出为[1, 3, 101, 102] - 提取值列表:
result.tolist(),输出为[1, 3, 9, 7]
内容的提问来源于stack exchange,提问作者some_id
相关产品推荐
相关产品推荐

