pandasの概要
Pythonのpandasを使えば、大量のデータを効率的に処理できます。
表形式のデータを読み込んで、必要な情報を取り出したり、計算したり、整理したりする作業が、驚くほど簡単になるのです。
ここでは、そんなpandasの基本的な特徴や役割について見ていきましょう。
【関連】Pythonをもっと詳しく学ぶならpaizaラーニング
pandasとは
pandasは、Pythonでデータ分析を行うためのライブラリです。
「ライブラリ」とは、「よく使う便利な機能をまとめた道具箱」のようなイメージです。自分でゼロから作らなくても、すぐに使える機能が揃っています。
pandasを使うと、ExcelやCSVファイルのような表形式のデータを簡単に読み込めます。そして、必要な情報を取り出したり、計算したり、整理したりできます。
出力結果
動物 年齢
0 イヌ 3
1 ネコ 5
2 ウサギ 2このように、数行のコードで表を作ることができます。
データを扱う仕事や分析作業を効率化したい方にとって、pandasは欠かせないツールです。
DataFrameの基本概念
DataFrameとは、pandasで扱う表形式データの基本的な構造です。
Excelのシートを思い浮かべてください。縦に行、横に列があって、データが整然と並んでいますよね。DataFrameも、まさにそのような構造です。
各列には名前がついており、データの種類ごとに整理できます。
例えば、動物の名前を記録する列、年齢を記録する列、といった具合です。
行には自動的に番号(0, 1, 2...)が振られ、データを特定しやすくなっています。
出力結果
(3, 2)
Index(['動物', '年齢'], dtype='object')この構造のおかげで、大量のデータでも見やすく管理できます。
ちなみに、dtypeは「data type(データ型)」の略で、そのデータが何の種類かを示しています。
今回の場合、dtype='object'と表示されているのは、列名('動物'や'年齢')が文字列だからです。
pandasでは文字列をobject型として扱います。
データ分析でよく見るdtypeを下記の表にまとめました。
代表的なものだけでも覚えておきましょう。
dtype |
意味 |
例 |
|---|---|---|
object |
文字列 |
'動物'、'イヌ' |
int64 |
整数 |
1、2、3 |
float64 |
小数 |
1.5、3.14 |
bool |
真偽値 |
True、False |
他ライブラリとの関係
pandasは、numpyという数値計算ライブラリと密接に連携しています。
numpyは数値の配列を高速に処理するのが得意です。pandasは、その機能を土台として、より使いやすい表形式のデータ構造を提供しています。
簡単にいうと、numpyが「数字の並び」を扱うのに対し、pandasは「動物の名前と年齢」といった異なる種類のデータを1つの表にまとめて扱えます。
この2つを組み合わせることで、複雑な分析作業も効率的に進められます。実際の作業では、pandasを使っていれば自然とnumpyの機能も活用できるので、そもそも両方を意識する必要はありません。
pandasのインストールと準備
pandasを使い始めるには、まず自分のパソコンにインストールする必要があります。
ここでは、そのインストール方法と動作確認の手順を解説します。
「大変そうだな……」と思うかもしれませんが、Pythonがすでに入っていれば、簡単なコマンド一つで導入できます。
【関連】Pythonの環境構築を徹底解説!開発初心者向けに手順を紹介
【関連】Pythonの次世代パッケージマネージャー「uv」の使い方を徹底解説
【関連】PythonのIDEをわかりやすく解説!プログラミング初心者向けガイド
インストール手順
pandasのインストールには、pipというツールを使います。
pipは、Pythonのライブラリを簡単にインストールできる便利なツールです。Pythonをインストールすると、通常はセットでインストールされています。
コマンドプロンプト(Windowsの場合)やターミナル(Macの場合)を開いて、次のコマンドを入力するだけで完了です。
もしエラーが出た場合は、次の点を確認してみてください。
- Pythonのバージョンが古くないか
- pipが正しくインストールされているか
- pipのバージョンが古くないか
上記のポイントを確認できる各コマンドは、下記です。
Macや一部環境では、pythonが Python 2系という旧バージョンシリーズを指す場合があります。
その場合は、次のようにpython3 / pip3と打つと確実です。
動作確認の方法
インストールが正しく完了したか確認するには、Pythonを起動してpandasを読み込んでみましょう。
出力結果
2.3.3
動物
0 リス「import pandas as pd」と入力してエラーが出なければ成功です。
「as pd」という部分は、「pandasをpdという短い名前で使えるようにする」という意味です。毎回「pandas」と書くのは長いので、通常は「pd」という省略形を使います。
バージョン情報が表示され、簡単な表が作成できていれば、正しく動作しています。
開発環境の例
pandasを使う環境としては、Google ColaboratoryやJupyter Notebookがおすすめです。
Google Colaboratoryは、ブラウザ上で動くため、インストール不要で手軽に始められます。Googleアカウントがあれば、誰でも無料で使えるのも便利です。
Jupyter Notebookは、コードを書いてすぐに結果を見られる対話型の環境です。データ分析の学習に適しており、試行錯誤しながら学ぶのに便利です。
どちらも初心者が学習しやすい環境として、よく使われています。最初はGoogle Colaboratoryから始めて、慣れてきたらJupyter Notebookを試してみる、という流れがおすすめです。
ちなみに、Google ColaboratoryはGoogleのサーバー上で動いており、分析に使いそうなライブラリはあらかじめ全部インストールしてくれています。
つまり、pandasを自分でインストールする必要がないということです。その点も、初心者にとっては学習を始めやすいポイントです。まず手軽に始めてみたいという方は、Google Colaboratoryから試してみてください。
DataFrameの基本操作と使い方
pandasが使える準備ができたら、実際にデータを扱ってみましょう。pandasを使えば、さまざまな形式のファイルを簡単に扱うことができます。
データ分析では、ファイルからデータを読み込んで加工する作業が中心です。
ここでは、ファイルの読み込みから基本的なデータ操作まで見ていきましょう。
CSVファイルの読み込み
CSVファイルは、カンマでデータを区切ったテキスト形式のファイルです。
Excelで作った表を保存するときに、「CSV形式で保存」を選ぶと作ることができます。
読み込むためには、pandasのread_csv関数を使いましょう。
ちなみに、ファイルによっては、文字コードが日本語に対応していない場合があります。
通常は、文字コードの指定を省略した場合もUTF-8が使われます。ただし、ファイルによっては文字コードが異なる場合があり、文字化けが起きる場合があります。その場合は、encoding='utf-8'やencoding='shift_jis'といった指定を追加してみてください。
また、区切り文字がカンマではなくタブの場合は、sep='\t'と指定することで対応できます。
Excelファイルの読み込み
Excelファイルは、read_excel関数で読み込むことができます。
Excelファイルの読み込みには、別途openpyxlというライブラリが必要です。自環境にインストールしていない場合は、先に下記コマンドでインストールしておきましょう。
Excelファイルには複数のシートが含まれる場合もよくあると思います。
その場合は、次のコード例のようにsheet_nameパラメータで、どのシートを読み込むか指定することができます。
シートは、シート名または番号で指定可能です。
例えば、sheet_name='動物リスト'や、sheet_name=0(最初のシート)といった形で指定ができます。
ちなみに、sheet_name=Noneとすれば、全シートを読み込むことができます。
データの抽出と条件指定
読み込んだデータから必要な部分だけを取り出す操作は、データ分析の基本です。
列を指定するには、df['列名']のように書きます。
複数列を選ぶ場合は、df[['列名1', '列名2']]のようにリストで指定します。
出力結果
動物 年齢
1 ネコ 5
0 イヌ
1 ネコ
2 ウサギ
Name: 動物, dtype: objectdf[df['年齢'] > 3]は、一見複雑に見えますが、内側のdf['年齢'] > 3が「年齢が3より大きいか?」という条件を表しています。それをそのままdf[]に渡すと、条件を満たす行だけを取り出しています。
また、複数の条件を組み合わせることもできます。例えば、df[(df['年齢'] > 3) & (df['動物'] == 'イヌ')]のように書けば、「年齢が3より大きく、かつ動物がイヌ」という条件になります。
ちなみに、dfは「DataFrame(データフレーム)」の略で、pandasで表形式のデータを扱うときの変数名として慣習的に使われています。animalsやdataといった別の名前でも問題ありませんが、多くのコード例でdfが使われているので、覚えておきましょう。
列の追加と計算処理
既存のデータをもとに新しい列を追加することもできます。
例えば、年齢を7倍して人間に換算した年齢を計算する場合、次のように書きます。
実際のコード例で見てみましょう。
出力結果
動物 年齢 人間年齢
0 イヌ 3 21
1 ネコ 5 35
2 ウサギ 2 14データの中に空欄(欠損値)がある場合は、fillnaメソッドで埋めたり、dropnaメソッドで削除したりできます。
欠損値を0で埋める場合は、df.fillna(0)と指定します。欠損値を含む行をすべて削除したい場合は、df.dropna()を使います。
データ加工と集計の実践入門
「このデータ、どうやって分析すればいいの?」と悩んだときに役立つのが、pandasの加工・集計機能です。
実務でよく使う操作を中心に解説します。データを使いやすく整理したり、傾向を把握したりするには、並び替えや集計の操作を学んでいきましょう。
並び替えとインデックス操作
データを特定の列の値で並び替えるには、sort_valuesメソッドを使います。
例えば、年齢の小さい順に並べるなら、df.sort_values('年齢')と書きます。逆順(大きい順)にしたい場合は、ascending=Falseを付け加えます。
並び替えをすると、インデックスの順番がバラバラになることがあります。インデックスとは、各行を識別するための番号や名前のことです。そんなときは、reset_indexメソッドで番号を振り直すと、0から順番に並び直されて見やすくなるため、覚えておきましょう。
出力結果
動物 年齢
1 ネコ 5
0 イヌ 3
2 ウサギ 2
動物 年齢
0 ネコ 5
1 イヌ 3
2 ウサギ 2年齢が大きい順に並んでいることが確認できますね。ちなみに、drop=Trueは「元のインデックスを列として残さない」という意味です。
グループ化と集計
同じ種類のデータをまとめて集計したいときには、groupbyメソッドを使います。
例えば、種類ごとに平均年齢を計算する場合は、次のように書きます。
出力結果
種類
イヌ 4.0
ネコ 3.0
Name: 年齢, dtype: float64ちなみに、他には次のような関数があります。
この機会に覚えておきましょう。
集計関数 |
説明 |
使用例 |
|---|---|---|
mean() |
平均値 |
df.groupby('種類')['年齢'].mean() |
sum() |
合計値 |
df.groupby('種類')['年齢'].sum() |
count() |
個数 |
df.groupby('種類')['年齢'].count() |
max() |
最大値 |
df.groupby('種類')['年齢'].max() |
min() |
最小値 |
df.groupby('種類')['年齢'].min() |
複数データの結合
別々のデータを1つにまとめるには、mergeメソッドを使います。
Excelのvlookup関数に似た操作で、共通の列を基準にデータを結合することができます。
mergeメソッドは、次のような形で書きます。
実際に、コードを見てみましょう。
出力結果
動物 年齢 体重
0 イヌ 3 15
1 ネコ 5 4結合方法は、次のような形で指定することができます。
-
inner(デフォルト)
両方のデータに共通する行だけを結合します。片方にしか存在しない行は除外されます。 -
left
左側(df1)を基準に結合します。df1の行はすべて残り、df2にない部分は空欄になります。 -
right
右側(df2)を基準に結合します。df2の行はすべて残り、df1にない部分は空欄になります。 -
outer
両方のデータをすべて残します。どちらか片方にしかない行も空欄で補完されます。
デフォルトはinnerで、両方のデータに存在する行だけが結合されるという点は覚えておきましょう。例えば、df1に「ウサギ」がいてもdf2に「ウサギ」がいなければ、結果から除外されます。
片方にしかないデータも含めたい場合は、how='outer'のように指定しましょう。
よくある質問(Q&A)
Q: pandasとExcelはどう違いますか?
A: Excelは手作業が中心ですが、pandasであれば大量のファイルを一括処理したり、複雑な条件でのデータ加工を自動化したりできます。
例えば、「毎週届く100個のCSVファイルを同じ方法で集計する」という作業なら、pandasで一度スクリプトを作ってしまえば、スクリプトを実行するだけで完了させるといったことも可能です。
ただし、視覚的な操作はExcelの方が直感的です。
Q: エラーが出たときの対処法は?
A: エラーメッセージをよく読むことが大切です。
よくあるエラーの原因としては、次のようなものがあります。
- 列名の間違い
- データ型の不一致
- ファイルパスの誤り
エラーメッセージをコピーして検索すると、解決策が見つかるケースがほとんどです。もしくはそのまま生成AIにコピペするだけで、簡単に解決策を教えてくれるので、ぜひ活用してみましょう。
Q: 大きなファイルの処理は可能ですか?
A: 数百万行のデータでも処理できますが、パソコンのメモリが不足すると動作が遅くなります。
chunksizeパラメータで分割読み込みしたり、不要な列を読み込まない設定にしたりすることで、メモリ使用量を抑えられます。
Q: どんな場面でpandasを使うべきですか?
A: 定期的に行うデータ集計や、複数ファイルの統合作業に向いています。
手作業で時間がかかる処理や、ミスが起きやすい複雑な計算を自動化したい場合には特に効果的でしょう。一度スクリプトを作れば、同じ処理を何度でも正確に実行できるからです。
例えば、「毎月の売上データを集計してレポートを作る」という定型業務なら、pandasで自動化すると大幅な時間短縮につながることを体感できると思います。
Q: 学習にどれくらい時間がかかりますか?
A: 基本的な操作なら、数日から1週間程度でマスターできるはずです。毎日少しずつ練習し、実際のデータで試してみることが上達の近道です。
最初は簡単なCSVファイルの読み込みから始めて、徐々に複雑な操作に挑戦すると理解が深まります。
「完璧に理解してから使う」のではなく、「使いながら学ぶ」という姿勢が大切です。
まとめ
Pythonのpandasは、データ分析を効率化する便利なライブラリです。
表形式データの読み込み、加工、集計といった作業を、シンプルなコードで実現できます。
手作業で何時間もかかっていた作業が、数行のコードで完了することもあります。
特にpandasが活躍するのは、次のような場面です。
pandasが活躍する場面
- 定期的に同じ形式のデータを集計したいとき(毎週・毎月のレポート作成など)
- 複数のExcelやCSVファイルを一つにまとめたいとき
- 大量のデータから特定の条件に合う情報を抽出したいとき
- 手作業だとミスが起きやすい複雑な計算を自動化したいとき
最後に、重要なポイントをおさらいしておきましょう。
重要なポイント
- DataFrameという表形式のデータ構造で、直感的に操作できる
- read_csvやread_excelを使って、CSVファイルやExcelファイルを読み込める
- groupbyやmergeといったメソッドを使えば、実務に必要なデータ加工ができる
- 一度スクリプトを作れば、同じ処理を繰り返し実行できる
最初は「コードを書くのって難しそう...」と感じるかもしれません。
しかし、この記事のコード例を見ると、意外と自分でも書ける気がしませんでしたか?
手を動かして、簡単なコードから実行してみてください。実際、そんなに難しくないとわかるはずです。
もし、pandasをマスターできれば、データ分析の基礎が固まります。
データを自由に扱えるようになれば、現場の仕事の効率を上げることにもつながるため、職場でも頼られる存在になるかもしれません。
ぜひ実際にたくさんコードを書いて、データ分析のスキルを磨いていきましょう。