つくる:データと対面する
このレッスンでできるようになること。新しいデータを渡されたとき、集計を始める前に全体像を掴む手順を自分の手で通せるようになります。
新しい知識は出てきません。1章で覚えた read_csv と shape と columns を、実務の順番でつなぎます。
データ分析でいちばんよくある事故は、中身を確かめないまま集計に進むことです。読み込んだつもりのファイルが去年のもので、集計を全部やり直した、という話はどこの現場にもあります。それを防ぐのがデータとの対面という最初の5分です。
対面で確かめるのは次の4つです。行数を見て、想定と桁が合っているかを確かめます。3店舗×6ヶ月の売上なら、数百から数千行が自然です。3行しかなければファイルが途中で切れています。列名を見て、必要な列が揃っているかを確かめます。金額の列が無ければ売上分析はできません。先頭の数行を head() で見て、値の形を掴みます。日付が 2026-01-05 なのか 2026/1/5 なのかで、あとの処理が変わります。店舗の数のように、分析の軸になる列に何種類の値があるかも見ておきます。nunique() がその数を返します。
Python
import pandas as pd
df = pd.read_csv("sales.csv")
print(df.shape)
print(df.columns.tolist())
print(df.head())
print(df["店舗"].nunique())行数、列数、列名、店舗数をメモに残し、先頭の数行で値の形を確かめるところまでが対面です。「1200行、6列、店舗は3つ」と書いておけば、あとで結果がおかしくなったときに、どこから狂ったのかを追えます。
この演習では、行数、列数、列名、店舗数を辞書にまとめます。分析の第一歩を、コードとして形にしましょう。
要件
- StringIO と read_csv で読み込む
- rows に行数、cols に列数を int で入れる
- columns に列名のリストを入れる
- stores に店舗列の種類数を int で入れる
ヒント
編集 ゆめさく編集部