如何按列值筛选定义新DataFrame并对指定列运行.describe()统计?
pandas 列值筛选与指定列统计实现方案
你可以通过两步完成需求:先通过布尔索引筛出指定车型的行生成独立新DataFrame,再对目标列调用内置统计方法即可,没有额外依赖。
具体操作步骤
- 第一步:生成筛选后的目标DataFrame
匹配Car Type列值为Sedan的所有行,核心代码为:sedan_df = df[df["Car Type"] == "Sedan"] - 第二步:对目标列运行汇总统计
从筛选结果中取出kilometers列,调用.describe()方法,即可输出该列的计数、均值、标准差、极值、分位数等全量汇总统计,核心代码为:km_summary = sedan_df["kilometers"].describe()
可直接运行的完整示例
import pandas as pd # 加载/构造数据集 df = pd.DataFrame({ "Car Type": ["Sedan", "SUV", "Sedan", "Truck", "Sedan", "SUV"], "kilometers": [12000, 35000, 28000, 52000, 18000, 41000] }) # 筛选Sedan车型的行 sedan_df = df[df["Car Type"] == "Sedan"] # 输出kilometers列的统计结果 print(sedan_df["kilometers"].describe())
实操注意事项
- 因
Car Type列名包含空格,不能使用点语法直接访问(即df.Car Type),这类写法会直接触发Python语法错误,带空格的列必须通过中括号包裹字符串的方式索引。 - 如果不需要长期保留筛选后的中间数据,可以直接用链式写法一步完成统计,省去中间变量:
df.loc[df["Car Type"] == "Sedan", "kilometers"].describe()
该写法执行效率更高,也不会产生临时的筛选后DataFrame占用内存。 - 列值匹配需要和原始数据完全一致(包括大小写、前后多余空格),如果出现筛选结果为空、统计结果为NaN的情况,可以先运行
df["Car Type"].unique()查看该列的实际取值,调整匹配规则避免错配。
内容的提问来源于stack exchange,提问作者Aaron E Larson
相关产品推荐
相关产品推荐

