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

如何基于指定列值筛选DataFrame行并提取目标列?

Pandas筛选行并提取指定列的实现方法

当然有啦!这在Pandas里是非常高频的操作,我给你整理了几种常用且实用的写法,不管你的DataFrame多大都能轻松搞定:

基础布尔索引法

这是最直观的写法,先通过条件生成布尔掩码筛选行,再提取目标列:

# 假设你的DataFrame叫df,要筛选的列是"target_col",目标值是"specific_value",提取的列是"extract_col"
result = df[df["target_col"] == "specific_value"]["extract_col"]

更安全的.loc方法

链式索引(上面的写法)有时候会触发SettingWithCopyWarning,推荐用.loc方法,它明确指定行和列,更适合大型DataFrame,也更易读:

result = df.loc[df["target_col"] == "specific_value", "extract_col"]

筛选多个特定值的情况

如果需要筛选某列包含多个值的行,用.isin()方法:

# 比如筛选target_col的值是val1或val2的行,提取extract_col
result = df.loc[df["target_col"].isin(["val1", "val2"]), "extract_col"]

转成列表(如果需要的话)

如果你想要的不是Pandas Series而是Python列表,直接加.tolist()就行:

result_list = df.loc[df["target_col"] == "specific_value", "extract_col"].tolist()

举个实际例子

假设我们有这样一个DataFrame:

import pandas as pd

data = {
    "category": ["books", "electronics", "books", "clothing"],
    "product": ["Python实战", "无线耳机", "数据分析入门", "纯棉T恤"],
    "price": [69, 299, 59, 49]
}
df = pd.DataFrame(data)

现在要筛选category为"books"的行,提取product列:

filtered_products = df.loc[df["category"] == "books", "product"]
print(filtered_products)

输出结果:

0 Python实战
2 数据分析入门
Name: product, dtype: object

内容的提问来源于stack exchange,提问作者Jose Tomas Marquez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:11:15