概観コマンド
このレッスンでできるようになること。head と info と describe を使い分けて、データの健康診断ができるようになります。
読み込んだデータをいきなり全部表示すると、画面が数千行で埋まって何も分かりません。pandas には全体を短時間で掴むための道具が3つあります。
df.head() は先頭の5行を返します。引数に数を渡せば df.head(3) で3行になります。目的は値の形を見ることです。日付が 2026-01-05 なのか 2026/1/5 なのか、金額に円が付いているのか、といった細かい形はここで気づきます。末尾を見る df.tail() もあり、ファイルの終わりに合計行が混ざっていないかの確認に使います。
df.info() は列ごとの型と非欠損の件数を表示します。目的は壊れている列を見つけることです。金額が数値ではなく object と表示されていたら、どこかの行に文字が混ざっています。件数が他の列より少なければ、その列に欠損があります。info は画面に表示するだけで値を返さないので、判定に使うなら df.dtypes や df.count() を直接読みます。
df.describe() は数値列の統計量を返します。件数、平均、標準偏差、最小、四分位数、最大の7つです。目的は値の範囲を知ることです。金額の最小がマイナスなら返品が混ざっており、最大が桁違いなら外れ値か入力ミスです。describe の結果は DataFrame なので、そのまま返さず to_dict() などにしてから扱います。
Python
import pandas as pd
df = pd.read_csv("sales.csv")
print(df.dtypes["金額"])
print(int(df["金額"].max()))DataFrame から行ごとの辞書リストを作るには to_dict("records") を使います。商品名と金額だけの短いCSVで試すと、次のような形になります。
Python
from io import StringIO
sample = pd.read_csv(StringIO("商品名,金額\n白磁のマグカップ,3600\n鉄のフライパン,7800\n"))
records = sample.to_dict("records")
print(records)
# [{'商品名': '白磁のマグカップ', '金額': 3600}, {'商品名': '鉄のフライパン', '金額': 7800}]この3つを順番に見る習慣を、健康診断と呼びます。分析の前に3分かければ、あとの数時間を無駄にせずに済みます。この演習では、健康診断の結果を辞書にまとめます。
要件
- 金額列の型名を dtype に文字列で入れる
- count に非欠損の件数を int で入れる
- min と max に金額の最小と最大を int で入れる
- mean に金額の平均を小数のまま入れる