本文へスキップ
BecomeCoder

Pythonデータ分析コース · 第3章 pandas ― 表データの基本 · レッスン12

CSVを読み込む ― read_csv

ブラウザで完結

導入

現実のデータは CSV ファイル(カンマ区切りのテキスト)で配られることがほとんどです。pandas はこれを1行で表に変換できます。

説明

ふつうはファイル名を渡しますが、この学習環境では、文字列の CSV を io.StringIO で包んで読み込みます(中身は同じ「CSV を read_csv で表にする」操作です)。

import pandas as pd
import io

csv_text = """name,age,score
Tanaka,28,80
Suzuki,34,95
Sato,22,70
Ito,41,88"""

df = pd.read_csv(io.StringIO(csv_text))
print(df)
print("平均点:", df["score"].mean())

1行目が**見出し(列名)**として自動で認識され、あとは第10レッスンで見た DataFrame とまったく同じように扱えます。実務では pd.read_csv("data.csv") のようにファイル名を書くだけ、という点も覚えておきましょう。

読み込んだらまず head()describe() で中身を確認するのが習慣です。

import pandas as pd
import io

csv_text = "product,price,qty\napple,120,3\norange,80,10\ngrape,300,2"
df = pd.read_csv(io.StringIO(csv_text))
print(df.head())
print("売上合計:", (df["price"] * df["qty"]).sum())

df["price"] * df["qty"] のように、列同士の掛け算で新しい計算ができるのも pandas の強みです。

やってみよう

csv_text に行を1つ足して(例:banana,100,5)、describe() の結果がどう変わるか確かめましょう。

演習

上の product の表で、qty(数量)列の合計を表示してください。

ヒント1を見る

df["qty"].sum()

実際に動かしてみよう

下のエディタにPythonを書いて「実行」を押すと、numpy・pandas・matplotlib が使える本物のPython(Pyodide)で出力とグラフが表示されます。初回だけ読み込みに少し時間がかかります。本文の例をそのまま試したり、書き換えたりしてみましょう(グラフ内の文字は日本語だと表示が崩れるため英字で書きます)。

Python — ライブラリ付きで実行(Pyodide)

numpy / pandas / matplotlib が使える本物のPython(Pyodide)を読み込みます。初回のみ読み込みに少し時間がかかります(以降はブラウザにキャッシュされます)。
スクロールして表示された時点でも自動で読み込まれます。