このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Python入門】データ解析を容易にするPandasライブラリ

データ解析を容易にするPandasライブラリ
CSVファイルから表形式のデータを読み込み、柔軟に抽出・加工したい場面は、機械学習やデータ解析の現場で頻繁に生じます。Pandasライブラリは、こうした課題に対して非常に強力な機能を提供してくれるツールです。特に「データフレーム(DataFrame)」と呼ばれる構造を使えば、列名を指定してデータを取得したり、複数の型(文字列・数値など)が混在する表を整然と管理できます。ここでは、Pandasを使ってファイルを読み込み、データフレームを操作するための基本を紹介します。

プログラムのダウンロード
「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。
1.Pandasのインストールとインポート
Pandasは標準ライブラリではないため、CPython環境やAnacondaなどの仮想環境では、インストールが必要です。
環境 | コマンド | 備考 |
---|---|---|
CPython(通常のPython) | pip install pandas | pip実行時に管理者権限が必要な場合もあります。 |
Anaconda / Miniconda | conda install -y pandas | 追加パッケージが必要な場合も一括で導入できます。 |
Pandasを使う際は、PythonスクリプトやJupyterLabのセルで次のようにインポートしてください。pd
は慣習的によく使われる別名です。
import pandas
import pandas as pd
何もエラーが出ずにインポートできれば、Pandasの準備は完了です。
2.CSVファイルのサンプルデータ:grades2.csv
今回は、grades2.csv
というファイル名で以下のような内容を用意し、最初の行に列名(ヘッダ)を定義しています。ここでは物理(Physics)、生物(Biology)、化学(Chemistry)の3科目のスコアが並んでいる想定です。本来は200行程度のデータを想定しますが、例としては5行分だけを示します。
Physics,Biology,Chemistry
65,70,85
72,63,90
81,59,74
93,88,66
56,78,82
注意: ファイルパスに応じて保存場所を指定し、JupyterLabのカレントディレクトリを合わせるか、あるいは絶対パスをread_csv()に渡してください。
3.CSVファイルをデータフレームに読み込む
Pandasではread_csv()
関数を使って、CSVファイルからDataFrameを作成します。文字コードがUTF-8以外の場合は、encoding
オプションを適宜変更してください。
import pandas as pd
grades = pd.read_csv("grades2.csv", encoding="utf_8")
grades
実行結果

pd.read_csv("grades2.csv")
: CSVファイルを読み込んで、DataFrameオブジェクトを生成します。encoding="utf_8"
: UTF-8形式のファイルを読み込む際に指定します(必要に応じて変更可能)。
実行すると、行番号(0から始まる)と、上部に列名(Physics, Biology, Chemistry)が表示されたテーブル形式で出力されます。データが大きい場合でも、Pandasは最初と最後の数行だけを表示し、行数・列数などを併記してくれるため、全体像を把握しやすくなります。
4.DataFrameの内容を一部確認する方法
大量のデータがある場合、全行を表示すると画面が埋まってしまいます。Pandasのhead()
メソッドやtail()
メソッドを使うと、指定した数だけ先頭・末尾の行を抜き出して確認できます。
# 先頭3行だけを表示
print("=== 先頭3行 ===")
print(grades.head(3))
# 末尾2行だけを表示
print("\n=== 末尾2行 ===")
print(grades.tail(2))
実行結果
=== 先頭3行 ===
Physics Biology Chemistry
0 65 70 85
1 72 63 90
2 81 59 74
=== 末尾2行 ===
Physics Biology Chemistry
3 93 88 66
4 56 78 82
DataFrame.head(n)
: 先頭からn行分を返す(nを省略すると5行)。DataFrame.tail(n)
: 末尾からn行分を返す(nを省略すると5行)。
また、列名の一覧や行列数も一目で確認できるため、データの概要を素早く把握できます。例えば、以下のコードで列名や形状を取得できます。
print("列名:", grades.columns) # 列名のIndexオブジェクト
print("形状:", grades.shape) # (行数, 列数)
実行結果
列名: Index(['Physics', 'Biology', 'Chemistry'], dtype='object')
形状: (5, 3)
5.サンプルプログラム:CSVの読み込みとデータ表示
以下は、JupyterLabのセルで実行可能なサンプルプログラムです。ファイル名や列名、出力結果などを自由にカスタマイズできます。今回の例では、読み込んだDataFrameを表示しつつ、一部行だけを抜き出してみています。
import pandas as pd
def display_dataframe_info(csv_file="grades2.csv"):
"""
指定されたCSVファイルを読み込み、
先頭行・末尾行・列情報などを表示するサンプル関数。
"""
# CSVをDataFrameとして読み込み
df = pd.read_csv(csv_file, encoding="utf_8")
print("=== ファイル内容をDataFrameに格納しました ===")
print("読み込みファイル名:", csv_file)
print("列名の一覧:", list(df.columns))
print("形状(行数, 列数):", df.shape)
print()
# 先頭行と末尾行を確認
print("=== 先頭3行 ===")
print(df.head(3))
print("\n=== 末尾3行 ===")
print(df.tail(3))
# 全体の表示はサイズが大きい場合のみ
# print("\n=== 全体表示 ===")
# print(df)
return df
# 実行例 (grades2.csvを事前に用意してください)
data = display_dataframe_info("grades2.csv")
実行結果
=== ファイル内容をDataFrameに格納しました ===
読み込みファイル名: grades2.csv
列名の一覧: ['Physics', 'Biology', 'Chemistry']
形状(行数, 列数): (5, 3)
=== 先頭3行 ===
Physics Biology Chemistry
0 65 70 85
1 72 63 90
2 81 59 74
=== 末尾3行 ===
Physics Biology Chemistry
2 81 59 74
3 93 88 66
4 56 78 82
プログラムの解説
df = pd.read_csv(csv_file, encoding="utf_8")
CSVファイルを読み込み、DataFrameオブジェクトdf
を生成。df.columns
列名(Indexオブジェクト)を取得。list(df.columns)
でリスト化も可能。df.shape
(行数, 列数)
のタプルを返す。df.head(3)
/df.tail(3)
最初の3行、最後の3行を表示。中身の概観を手短に知るのに便利。
まとめ
Pandasライブラリを活用すれば、数値データだけでなく文字列データを含む表形式のCSVファイルを簡単に読み込み、必要な部分だけ抽出したり、データ全体を俯瞰したりすることができます。行列インデックスは0から始まり、列名はCSVのヘッダとして定義されたものがそのまま使われるため、Pythonコードから読み解きやすい形式でデータを扱えます。
Pandasを用いることで集計やグルーピング、欠損値の補完、さらには複数ファイルの結合など、より高度な操作も行えるようになります。機械学習やビッグデータ解析の前処理段階でも欠かせないライブラリですので、基本的な読み込み・表示・抽出の流れをしっかり習得しておきましょう。