Menu
CoddyTech

多项汇总

本课属于 Coddy Machine Learning 学习旅程的“数据与图表”单元。第 44 课,共 60 课。

每组只用一个数字会掩盖极值。.agg 接收统计名称列表,并为每个名称生成一列:

按喜剧和剧情类型分组的五场放映汇总成表格,包含平均值和最大值两列:喜剧为 97.5 和 100,剧情为 130.0 和 150

对于这 5 场放映,再加上 .size(),它会统计每组的行数:

shows = pd.DataFrame({
    "genre": ["comedy", "comedy", "drama", "drama", "drama"],
    "minutes": [95, 100, 130, 110, 150],
})
print(shows.groupby("genre")["minutes"].agg(["mean", "max"]))
print(shows.groupby("genre").size())

输出结果为:

         mean  max
genre             
comedy   97.5  100
drama   130.0  150
genre
comedy    2
drama     3
dtype: int64

喜剧片平均时长为 97.5 分钟,最多为 100 分钟,"min" 或 "sum" 也可以。检查样本量:基于 2 行数据计算的平均值,不如基于 200 行数据计算的可靠。

challenge icon

挑战

中等

一辆餐车将一周的订单保存在 truck.csv 中:day、dish、payment 和 total(美元)。起始代码会将要分组的列读入 column。

  1. 打印每个组中的订单数。
  2. 打印一个表格,展示每个组的 total,列按 min、mean、max 的顺序排列。

输入 day 时:

day
Fri    5
Mon    3
Thu    5
Tue    7
Wed    4
dtype: int64
     min   mean  max
day                 
Fri   10  19.60   36
Mon   12  27.00   42
Thu   10  21.60   42
Tue    9  19.00   30
Wed   10  21.25   27

亲手试试

import pandas as pd

orders = pd.read_csv("truck.csv")
column = input()

# 在下方编写你的代码
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

数据与图表中的所有课

自己练习: Python 在线编译器