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

如何从Seaborn tips数据集分组结果中仅筛选Dinner类别?

仅获取Dinner的total_bill统计结果的方法

方法1:先筛选再聚合(最直接)

先过滤出time为Dinner的记录,再对total_bill执行统计操作——因为已经是单一类别,无需分组:

import seaborn as sns

df = sns.load_dataset("tips")
# 筛选Dinner数据
dinner_data = df[df["time"] == "Dinner"]
# 计算指定统计量
dinner_stats = dinner_data["total_bill"].agg(["sum", "min", "max", "mean"])
print(dinner_stats)

方法2:分组后提取目标组

先按time完成分组聚合,再通过索引直接提取Dinner对应的结果:

import seaborn as sns

df = sns.load_dataset("tips")
# 按time分组计算统计量
grouped_result = df.groupby(["time"]).agg({"total_bill": ["sum", "min", "max", "mean"]})
# 提取Dinner的统计数据
dinner_stats = grouped_result.loc["Dinner"]
print(dinner_stats)

方法3:基于布尔分组提取结果

针对你之前尝试的布尔分组方式,只需提取True对应的行即可(True对应time=="Dinner"的记录):

import seaborn as sns

df = sns.load_dataset("tips")
# 按布尔条件分组后提取True组
dinner_stats = df.groupby(df["time"] == "Dinner").agg({"total_bill": ["sum", "min", "max", "mean"]}).loc[True]
print(dinner_stats)

为什么之前的代码会出现True/False索引?

df["time"] == "Dinner"生成的是布尔类型的Series,groupby会将True和False作为两个独立的分组键,因此结果会包含这两个索引。只要提取True对应的行,就是你需要的Dinner统计数据。

内容的提问来源于stack exchange,提问作者optiko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 00:22:10