CSVを読み込む
このレッスンでできるようになること。マイショップ・チェーンの売上CSVを read_csv で読み込み、DataFrame として扱えるようになります。
分析はデータを開くところから始まります。pandas でいちばんよく使う入口が pd.read_csv です。ファイルの場所を渡すだけで、1行目を列名、2行目以降をデータとして読み取り、DataFrame という表のオブジェクトを返します。
Python
import pandas as pd
df = pd.read_csv("sales.csv")読み込んだ結果を入れる変数を df と名づけるのも、pandas でよく見る慣習です。DataFrame の頭文字です。
このコースの演習ではファイルを置く代わりに、CSV の中身を文字列で受け取ります。文字列をファイルのように扱うには io の StringIO を使います。read_csv は「読める入れ物」を受け取れるので、StringIO(csv_text) を渡せばファイルと同じように読めます。テストしやすい形なので、実務でも小さなデータを試すときによく使います。
Python
import pandas as pd
from io import StringIO
csv_text = "売上日,店舗,金額\n2026-01-05,渋谷店,3600\n"
df = pd.read_csv(StringIO(csv_text))読み込んだあとに真っ先に確かめるのは、行数と列数です。df.shape が (行数, 列数) のタプルを返します。狙ったファイルを読めているか、途中で切れていないかが、この2つの数字で分かります。列名は df.columns にあり、tolist() でただのリストに直せます。
ここで最初の落とし穴に触れておきます。df.shape[0] は pandas の内部で使う整数型なので、そのまま返すと採点の仕組みが受け取れません。int() で普通の整数に直してから返してください。このコースでは合計や件数を返すたびに int() を付けます。
要件
- StringIO を使って csv_text を read_csv に渡す
- 行数は shape[0]、列数は shape[1] から取る
- 列名は columns.tolist() でリストにする
- {"rows": 行数, "cols": 列数, "columns": 列名のリスト} の形で返す
- 行数と列数は int() で整数に直す
入出力例
load_sales("売上日,店舗,商品名,カテゴリ,数量,金額
2026-01-05,渋谷店,白磁のマグカップ,食器,2,3600
2026-01-06,横浜店,鉄のフライパン,調理器具,1,7800
2026-01-07,大宮店,積み重ね収納ボックス,収納,3,4500
") → {"cols":6,"columns":["売上日","店舗","商品名","カテゴリ","数量","金額"],"rows":3}
load_sales("売上日,店舗,商品名,カテゴリ,数量,金額
2026-02-01,渋谷店,木製カッティングボード,調理器具,1,4200
2026-02-02,渋谷店,白磁のマグカップ,食器,4,7200
") → {"cols":6,"columns":["売上日","店舗","商品名","カテゴリ","数量","金額"],"rows":2}ヒント
編集 ゆめさく編集部