如何基于指定列值筛选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
相关产品推荐
相关产品推荐

