Pythonでデータ分析をはじめるとき、最初に覚えておきたいライブラリのひとつがpandasです。表形式のデータを効率よく操作できるため、データの読み込み・整形・集計といった作業を少ないコードで進められます。
この記事では、pandasの概要からインストール方法、DataFrameの作成、CSV読み込み、列の取り出し、条件抽出までを順に解説します。
pandasとは何か
pandasは、Pythonでデータ分析を行うためのライブラリです。Excelのような表形式のデータを扱いやすくするための機能がそろっています。
たとえば、売上データ、顧客一覧、アンケート結果、CSVファイルのような行と列で構成されたデータを扱うときに便利です。データサイエンスや機械学習の前処理でもよく使われます。
pandasには主に2つのデータ構造があります。
- Series:1列分のデータを扱う一次元構造。インデックス付きのリストのようなものです。
- DataFrame:複数の列を持つ二次元の表形式データ。Excelのシートに近いイメージです。
pandasを使ったデータ処理では、DataFrameを中心に扱う場面が多くなります。まずDataFrameの操作を覚えることが、pandasを理解する近道です。
pandasのインストール方法
pandasは、Pythonがインストール済みであればpipで導入できます。まだPythonをインストールしていない場合は、先にWindowsへのPythonインストール手順を確認してください。
pandasをインストールするには、コマンドプロンプトまたはターミナルで以下を実行します。
pip install pandas
Windowsでpipが認識されない場合は、以下のようにpy -m pipを使います。
py -m pip install pandas
インストール後、以下のコマンドでpandasのバージョンを確認できます。
python -c "import pandas; print(pandas.__version__)"
pythonコマンドでうまくいかない場合は、以下も試してください。
py -c "import pandas; print(pandas.__version__)"
バージョン番号が表示されれば、pandasのインストールは成功です。
pandasの基本的な使い方
pandasをインポートする
pandasは慣例としてpdという別名でインポートします。
import pandas as pd
この書き方をしておくと、以降のコードでpd.DataFrame()やpd.read_csv()のように短く書けます。
DataFrameを作成する
まずは、辞書形式のデータからDataFrameを作成してみます。
import pandas as pd
data = {
"名前": ["田中", "鈴木", "佐藤"],
"年齢": [28, 34, 22],
"部署": ["営業", "開発", "営業"]
}
df = pd.DataFrame(data)
print(df)
実行結果:
名前 年齢 部署
0 田中 28 営業
1 鈴木 34 開発
2 佐藤 22 営業
pd.DataFrame()を使うと、辞書形式のデータを表形式に変換できます。左端の0、1、2はインデックスです。各行を識別するための番号のようなものです。
CSVファイルを読み込む
実務では、コード内に直接データを書くよりも、CSVファイルを読み込むケースが多くなります。
df = pd.read_csv("data.csv")
print(df)
read_csv()は、CSVファイルをDataFrameとして読み込むための関数です。読み込んだ結果は、変数dfに保存しています。
CSVファイルを扱うときは、ファイル名や保存場所に注意してください。Pythonを実行している場所とCSVファイルの場所が違う場合は、ファイルパスを正しく指定する必要があります。
データの概要を確認する
読み込んだデータをすぐに加工する前に、まず中身を確認します。よく使う基本操作は以下です。
# 先頭5行を表示
print(df.head())
# 行数・列数を確認
print(df.shape)
# 列名の一覧を確認
print(df.columns)
head()は先頭の数行を確認するために使います。shapeでは行数と列数、columnsでは列名を確認できます。
pandasでエラーが出る場合、列名の指定ミスが原因になることがよくあります。処理を始める前にdf.columnsで列名を確認しておくと、ミスに気づきやすくなります。
列を取り出す
DataFrameから特定の列を取り出すには、列名を指定します。
print(df["名前"])
df["名前"]のように書くと、「名前」列だけを取り出せます。
条件でデータを絞り込む
条件に合う行だけを取り出すこともできます。たとえば、年齢が30以上の行だけを取り出す場合は以下のように書きます。
print(df[df["年齢"] >= 30])
df["年齢"] >= 30で条件を作り、その条件に合う行だけをdf[条件]の形で取り出しています。
この書き方はpandasでよく使います。複数条件を組み合わせる場合は少し書き方が変わるため、慣れてきたらpandasで複数条件を指定して抽出する方法も確認すると理解しやすくなります。
よくあるミスと対処法
ModuleNotFoundError: No module named ‘pandas’
pandasがインストールされていないか、別のPython環境にインストールされている場合に発生します。
まずは以下を再実行してください。
pip install pandas
Windowsでうまくいかない場合は、以下を試します。
py -m pip install pandas
列名を間違えてKeyErrorになる
存在しない列名を指定すると、KeyErrorが発生します。
たとえば、実際の列名が「名前」なのに「氏名」と書くとエラーになります。列名がわからない場合は、まず以下で確認してください。
print(df.columns)
CSVが文字化けする
日本語を含むCSVファイルでは、文字コードの違いで文字化けすることがあります。
まずは以下のようにencodingを指定して読み込みます。
df = pd.read_csv("data.csv", encoding="utf-8")
それでも文字化けする場合は、Windowsで作成されたCSVの可能性があります。以下のようにcp932やshift_jisを試してください。
df = pd.read_csv("data.csv", encoding="cp932")
df = pd.read_csv("data.csv", encoding="shift_jis")
AI時代におけるpandasの位置づけ
AIツールを使えば、pandasのコードを自動生成する場面も増えています。ただ、生成されたコードが正しく動くかを判断するには、DataFrameの構造や列名、インデックスの考え方を理解している方が有利です。
コードを書く量が減っても、データの中身を確認し、出力が意図どおりか見分ける力は残ります。
まとめ
pandasは、Pythonで表形式データを扱うためのライブラリです。CSVファイルの読み込み、データ確認、列の取り出し、条件抽出など、データ分析の基本操作でよく使われます。
- pandasはPythonのデータ分析ライブラリで、表形式データの操作が得意
- 主なデータ構造はSeriesとDataFrame
- まずはDataFrameの操作を中心に覚えると理解しやすい
- インストールは
pip install pandasまたはpy -m pip install pandasで行う - 基本操作はDataFrame作成・CSV読み込み・列操作・条件抽出を押さえる
- エラーが出たら、インストール環境、列名、CSVの文字コードを確認する
Excelファイルもpandasで読み込みたい場合は、pandasでExcelファイルを読み込む方法も参考になります。