Menu
CoddyTech

ペンギン探検家

CoddyのMachine Learningジャーニー「データとプロット」セクションの一部。レッスン 60/60。

南極大陸の調査チームが、3種のペンギンを100羽測定しました。penguins.csvにはペンギン1羽につき1行のデータがあり、いくつかのセルは空です。pandasはそれらをNaNとして読み込みます。

列は、species、island、bill_length_mm、bill_depth_mm、flipper_length_mm、body_mass_g、sexです。

どの測定値から種を見分けられるでしょうか?チームは、くちばしの長さについて次のように、種ごとの分布を重ね合わせています。

bill_length_mmというタイトルの、くちばしの長さを示す3つの透過ヒストグラム:左に34~43 mmのAdelie、中央にGentoo、右にChinstrapがあり、GentooとChinstrapは重なっている

アデリーペンギンのくちばしは際立っています。プログラムはどの測定項目についてもこのグラフを描画します。

challenge icon

チャレンジ

難しい

このプログラムは列名を読み取ります。

  1. penguins.csvを読み込み、ペンギンの数と、その列で欠損している値の数を出力します。
  2. 欠損値のある行をすべて削除し、残った行数を出力します。
  3. 1つのグラフ上で種ごとにループし、それぞれの列の平均値(小数第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オンラインコンパイラ