Menu
CoddyTech

企鹅探索者

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

一个野外考察队在南极洲测量了 100 只、分属 3 个物种的企鹅。penguins.csv 中每只企鹅占一行,其中有些单元格为空:pandas 会将它们读取为 NaN。

它的列包括:species、island、bill_length_mm、bill_depth_mm、flipper_length_mm、body_mass_g 和 sex。

哪种测量值能帮助识别物种?团队将各物种的数据分布叠加在一起,例如下面的喙长:

三个半透明的喙长直方图,标题为 bill_length_mm:左侧是阿德利企鹅,范围在 34 到 43 mm 之间;中间是巴布亚企鹅;右侧是帽带企鹅,巴布亚企鹅和帽带企鹅的分布有重叠

阿德利企鹅的喙很突出。你的程序可以针对任何测量指标绘制这张图表。

challenge icon

挑战

困难

程序会读取一个列名。

  1. 读取 penguins.csv,打印企鹅的数量,以及该列中缺失值的数量。
  2. 删除所有有缺失值的行,并打印保留的行数。
  3. 在同一张图表中,遍历各个物种:打印每个物种该列的平均值(保留 1 位小数,使用 round),并绘制其直方图,使用 bins=8、alpha=0.5,并将物种名称设为标签。
  4. 使用列名作为图表标题,将 y 轴标签设为 Penguins,并添加图例。

对于 bill_length_mm,完整输出如下:

Penguins: 100
Missing bill_length_mm: 2
Kept after cleaning: 94
Adelie: 38.9
Chinstrap: 50.0
Gentoo: 46.9
Charts drawn: 1
Title: bill_length_mm
Y label: Penguins
Histograms: 3
Histogram Adelie: 8 bars, counts [4, 1, 7, 4, 7, 8, 7, 4]
Histogram Chinstrap: 8 bars, counts [1, 2, 5, 2, 5, 4, 0, 1]
Histogram Gentoo: 8 bars, counts [1, 4, 9, 7, 3, 5, 1, 2]
See-through bars: yes
Legend: Adelie, Chinstrap, Gentoo

亲手试试

import pandas as pd
import matplotlib.pyplot as plt

species = ["Adelie", "Chinstrap", "Gentoo"]
column = input()

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

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

数据与图表中的所有课

自己练习: Python 在线编译器