AI開発に強いプログラミング言語 Python(パイソン)の「Pandas」は、データ分析に欠かせないライブラリです。大量データの効率的な処理から、深い洞察の抽出まで、幅広いニーズに応えます。
本記事では、Pandasの概要、主要機能、基本的な使い方、そして頻用されるメソッドや具体例を解説します。

制御系システムや自動化システムの新規開発を中心に、15年以上の開発経験を持つ現役エンジニアです。『デジタルは人と人をつなぐもの』という言葉が好きです。デジタルの世界をわかりやすく伝えていきます。
Pythonライブラリ「Pandas」とは
Pandas (パンダス)は、Python(パイソン)で効率的にデータ分析を行うための強力なライブラリです。2008年にWes McKinney氏によって開発され、現在ではデータサイエンスや機械学習など幅広い分野で活用されています。
【Pandasの由来と特徴】
- 名前の由来は “Panel Data”(パネルデータ)の略
- 正しい発音は「パン・ダス」(”PANel DAta”から)
- 初期の目的は金融データ分析
- 現在の用途は データサイエンス、機械学習、ビジネス分析など多岐にわたる
【Pandasの主要な特徴】
特徴 | 説明 |
高速なデータ処理 | NumPyをベースにしており、大量のデータを効率的に処理できる |
柔軟なデータ構造 | DataFrame、Seriesなど、多様なデータ形式を扱える |
データ操作の容易さ | データの結合、フィルタリング、グループ化などが簡単に行える |
欠損値の処理 | 欠損データの扱いに優れた機能を提供 |
時系列データの扱い | 日付や時間データの操作に特化した機能がある |
データの入出力 | CSV、Excel、SQLデータベースなど様々な形式のデータの読み書きが可能 |
可視化との連携 | Matplotlib、Seabornなどの可視化ライブラリとの相性が良い |
【Pandasの重要性】
機能 | 説明 |
効率的なデータ処理 | 大量のデータを高速かつ効率的に処理できる |
使いやすいAPI | 直感的で使いやすいインターフェースを提供 |
多様なデータ形式対応 | 様々な形式のデータを簡単に扱える |
他のライブラリとの連携 | NumPy、Matplotlib、Scikit-learnなど他のデータサイエンスライブラリと連携しやすい |
これらの特徴により、データの前処理から高度な分析まで、Pandasを使いこなすことで効率的なデータ分析ワークフローを構築できます。Pandasはデータサイエンティストや分析者にとって必須のスキルなのです。
Python Pandasの主な機能・できること
Pandasは、Pythonのデータ分析ライブラリとして広く利用されており、データの読み込み、クリーニング、整形、分析、可視化など、データ分析のワークフローに必要な多彩な機能を提供しています。
直感的で使いやすいAPIを備えており、少ないコード量で効率的にデータ処理を行うことができます。
本章では、Pandasの主要な機能について、具体的なコード例を交えながら詳しく解説していきます。
データの読み込み・書き込み
Pandasを使えば、CSVやExcelファイルなどのデータを簡単に読み込むことができます。
(Pythonのサンプルコード)
import pandas as pd
# CSVファイルの読み込み
df = pd.read_csv(‘data.csv’)
# Excelファイルへの書き込み
df.to_excel(‘output.xlsx’, index=False)
read_csv()やread_excel()関数を使って、ファイルからデータをDataFrameとして読み込み、to_csv()やto_excel()関数でデータを別のファイルに書き出すことができます。
データのクリーニングと前処理
Pandasには欠損値の処理や重複データの削除など、データのクリーニングに役立つ機能が多数あります。
(Pythonのサンプルコード)
# 欠損値の補完
df.fillna(0, inplace=True)
# 重複データの削除
df.drop_duplicates(subset=[‘Name’, ‘Age’], inplace=True)
isnull()やnotnull()関数で欠損値を検出し、fillna()関数で欠損値を補完できます。duplicated()関数で重複データを見つけ、drop_duplicates()関数で重複を削除できます。
さらに、データの前処理としてDataFrameの構造を柔軟に変更することができます。列の選択、フィルタリング、ソートなどが可能です。
(Pythonのサンプルコード)
new_df = df[[‘Name’, ‘Age’]][df[‘Age’] > 30]
# データの縦型から横型への変換
pivoted_df = df.pivot(index=’Name’, columns=’Subject’, values=’Score’)
melt()やpivot()関数を使ってデータを縦型と横型に変換したり、groupby()関数でグループ化集計したりできます。
高度なデータ分析
Pandasを使えば、データの基本統計量を簡単に計算できます。
(Pythonのサンプルコード)
# 基本統計量の計算
stats = df.describe()
# 相関係数の計算
correlation = df.corr()
describe()関数で要約統計量を取得したり、corr()関数で相関係数を計算したりできます。また、apply()やlambda式を使って独自の計算処理を行うこともできます。
データの可視化
Pandasは、データ可視化のためのヒストグラムやグラフ作成機能も提供しています。
(Pythonのサンプルコード)
# ヒストグラムの描画
df[‘Age’].hist(bins=10)
# 折れ線グラフの作成
df.plot(x=’Date’, y=’Price’, kind=’line’)
hist()関数でヒストグラムを描画したり、plot()関数で折れ線グラフや散布図を作成したりできます。Matplotlibと連携することで、さらに高度なデータ可視化が可能です。
Python Pandasの基本的な使い方
Pandasを使ったデータ分析を始めるには、まずデータの読み込みと前処理が必要不可欠です。また、データの操作と分析方法を理解することで、Pandasの機能を最大限に活用することができます。
ここでは、Pandasの基本的な使い方として、データの読み込みと前処理の手順、およびデータの操作と分析方法についてサンプルコードを交えながら解説します。
Pandasのインストールと初期設定
Pandasのインストールと初期設定について以下に説明します。基本的な使用例についてもみていきましょう。
1.事前確認
まず、Pythonがインストールされていることを確認してください。通常、Pythonにはpipがデフォルトでインストールされています。コマンドプロンプトまたはターミナルで以下のコマンドを実行して確認できます。
※Pandasを使用するには、Python 3.7以降のバージョンが推奨されます。
2.インストール
Pandasは通常、pipを使ってインストールします。コマンドプロンプトまたはターミナルで以下のコマンドを実行します。
3.初期設定
PythonスクリプトでPandasを使用するには、通常以下のようにインポートします。
これでPandasの主な機能が`pd`というエイリアスで使用できるようになります。
4.基本的な使用例
Pandasを使用してCSVファイルを読み込む簡単な例です。
# CSVファイルを読み込む
df = pd.read_csv(‘ファイル名.csv’)
# データの最初の5行を表示
print(df.head())
これらの手順でPandasの基本的なセットアップができます。
データの読み込みと前処理
Pandasを使ってデータを読み込み、前処理を行う基本的なステップを以下に説明します。データの内容に応じて、必要な処理を適宜組み合わせていきましょう。
1.データの読み込み
CSVファイルやExcelファイルをデータフレームとして読み込むことができます。
(Pythonのサンプルコード)
import pandas as pd
# CSVファイルの読み込み
df = pd.read_csv(‘data.csv’)
# Excelファイルの読み込み
df = pd.read_excel(‘data.xlsx’, sheet_name=’Sheet1′)
`read_csv`関数でCSVファイルを、`read_excel`関数でExcelファイルを読み込みます。Excelファイルの場合は、`sheet_name`引数で読み込むシートを指定します。
2.欠損値の確認と処理
データフレーム内の欠損値を確認し、適切な方法で処理します。
(Pythonのサンプルコード)
# 欠損値の確認
print(df.isnull().sum())
# 欠損値の補完(平均値で補完する例)
df.fillna(df.mean(), inplace=True)
`isnull`メソッドと`sum`メソッドを組み合わせることで、各列の欠損値の数を確認できます。欠損値がある場合は、`fillna`メソッドを使って補完することができます。例では、各列の平均値で欠損値を補完しています。`inplace=True`を指定することで、元のデータフレームを更新します。
3.型変換
データフレームの特定の列のデータ型を変換します。
(Pythonのサンプルコード)
df[‘column_name’] = df[‘column_name’].astype(int)
`astype`メソッドを使用して、特定の列のデータ型を変換します。例では、`’column_name’`列をint型に変換しています。
4.不要な列の削除
データフレームから不要な列を削除します。
(Pythonのサンプルコード)
df.drop([‘column1’, ‘column2’], axis=1, inplace=True)
`drop`メソッドを使用して、不要な列を削除します。削除する列名をリストで指定し、`axis=1`で列を指定します。`inplace=True`を指定することで、元のデータフレームを更新します。
5.新しい列の追加
既存の列を組み合わせて新しい列を作成するには、新しい列名を指定し、既存の列を組み合わせた式を代入します。
(Pythonのサンプルコード)
df[‘new_column’] = df[‘column1’] + df[‘column2’]
`’column1’`と`’column2’`の和を`’new_column’`として追加しています。
データの操作と分析方法
Pandasを使ったデータ操作の基本から、簡単な分析方法までを説明します。これらの機能を使って、データの選択、絞り込み、ソート、集計、結合、統計量の計算、相関分析、可視化などを行うことができます。
1. データの選択と絞り込み
Pandasを使って、データフレームから必要な列や条件に合う行を選択し、データを絞り込むことができます。
(Pythonのサンプルコード)
# 列の選択
selected_columns = df[[‘column1’, ‘column2’]]
# 行の選択(条件に基づく絞り込み)
filtered_rows = df[df[‘column1’] > 0]
列の選択では、必要な列名をリストで指定することで、特定の列だけを取り出すことができます。行の選択では、条件式を使って、条件に合う行のみを抽出することができます。
2. データのソートと並べ替え
データフレームの行を特定の列の値に基づいてソート(並べ替え)することができます。
(Pythonのサンプルコード)
# 特定の列で昇順にソート
sorted_data = df.sort_values(‘column1’)
# 複数の列で降順にソート
sorted_data = df.sort_values([‘column1’, ‘column2’], ascending=[False, False])
`sort_values`メソッドを使って、指定した列の値に基づいて行をソートできます。`ascending`パラメータを使って、昇順(`True`)または降順(`False`)を指定できます。
3. データのグループ化と集計
データフレームを特定の列の値に基づいてグループ化し、各グループに対して集計操作を行うことができます。
(Pythonのサンプルコード)
# 特定の列でグループ化し、各グループの平均値を計算
grouped_data = df.groupby(‘column1’).mean()
# 特定の列でグループ化し、各グループの合計値を計算
grouped_data = df.groupby(‘column1’).sum()
`groupby`メソッドを使って、指定した列の値に基づいてグループ化し、`mean`や`sum`などの集計メソッドを適用することで、各グループの統計量を計算できます。
4. データの結合と連結
複数のデータフレームを結合したり、連結したりすることができます。
(Pythonのサンプルコード)
# 2つのデータフレームを列方向に結合
merged_data = pd.merge(df1, df2, on=’common_column’)
# 2つのデータフレームを行方向に連結
concatenated_data = pd.concat([df1, df2])
`merge`関数を使って、共通の列を基準に2つのデータフレームを結合できます。`concat`関数を使って、複数のデータフレームを行方向に連結できます。
5. 基本的な統計量の計算
データフレームの各列に対して、基本的な統計量を計算することができます。
(Pythonのサンプルコード)
# 各列の平均値を計算
mean_values = df.mean()
# 各列の中央値を計算
median_values = df.median()
# 各列の最大値と最小値を計算
max_values = df.max()
min_values = df.min()
`mean`、`median`、`max`、`min`などのメソッドを使って、各列の平均値、中央値、最大値、最小値などの基本的な統計量を計算できます。
6. 相関関係の分析
データフレームの列間の相関関係を分析することができます。
(Pythonのサンプルコード)
correlation_matrix = df.corr()
`corr`メソッドを使って、データフレームの各列間の相関係数を計算し、相関行列を取得できます。相関係数は-1から1の間の値をとり、1に近いほど強い正の相関、-1に近いほど強い負の相関があることを示します。
7. データの可視化
Pandasを使って、データをグラフで可視化することができます。
(Pythonのサンプルコード)
# ヒストグラムの作成
df[‘column1′].plot(kind=’hist’)
# 散布図の作成
df.plot(x=’column1′, y=’column2′, kind=’scatter’)
`plot`メソッドを使って、各種グラフを作成できます。`kind`パラメータを使って、グラフの種類(ヒストグラム、散布図など)を指定します。Pandasの可視化機能は、Matplotlibライブラリを内部で使用しています。
Python Pandasのメソッド一覧
Python Pandasには、データ分析に必要な多様な操作を行うための豊富なメソッドが用意されています。ここでは、データフレームの操作、データ処理、データ分析、データ可視化の4つのカテゴリに分けて、Pandasで使用できる主なメソッドを一覧で紹介します。
それぞれのメソッドの機能を理解することで、Pandasを使ったデータ分析の幅が広がるでしょう。
データフレーム操作
データフレームの表示、概要情報の確認、基本統計量の計算、ソート、列の削除・名前変更など、データフレームの基本的な操作を行うメソッドがまとめられています。
メソッド | 説明 |
head()、tail() | データの先頭部分と末尾部分を表示 |
info() | データフレームの概要情報を表示 |
describe() | データの基本統計量を一括で計算 |
shape | データフレームの行数と列数を返す |
columns | データフレームの列名を返す |
index | データフレームの行番号を返す |
sort_values() | データをソート |
drop() | 指定した列や行を削除 |
rename() | 列名を変更 |
reset_index() | 行番号をリセット |
set_index() | 指定した列を行番号に設定 |
データの前処理や整形に役立つメソッドです。
データ処理
欠損値の処理、データ型の変換、関数の適用、データの結合・変換など、データの加工や整形に関するメソッドがまとめられています。
メソッド | 説明 |
isnull()、notnull() | 欠損値の判定 |
fillna() | 欠損値を特定の値で埋める |
dropna() | 欠損値を含む行や列を削除 |
replace() | 特定の値を別の値に置換 |
astype() | データ型を変換 |
apply() | データに関数を適用 |
map() | データを別の値にマッピング |
merge() | 複数のDataFrameを結合(横方向) |
concat() | 複数のDataFrameを結合(縦方向) |
groupby() | データをグループ化 |
pivot() | データを縦持ち・横持ちに変換 |
melt() | 横持ちのデータを縦持ちに変換 |
データを分析しやすい形に整えるために使用するメソッドです。
データ分析
データの選択、絞り込み、集計、統計量の計算、時系列データの処理など、データの分析に直接関わるメソッドがまとめられています。
メソッド | 説明 |
loc[]、iloc[] | データの選択と絞り込み |
isin() | 指定した値を含むデータを選択 |
query() | 条件式を指定してデータを絞り込み |
sum()、mean()、median()、min()、max()、count() | データの集計と統計 |
corr() | 相関係数の計算 |
cov() | 共分散の計算 |
diff() | 差分の計算 |
pct_change() | パーセント変化率の計算 |
rank() | 順位の計算 |
resample() | 時系列データのリサンプリング |
rolling() | ローリング計算(移動窓計算) |
expanding() | 累積計算 |
これらのメソッドを駆使することで、データから有益な情報を引き出すことができます。
データ可視化
折れ線グラフ、散布図、ヒストグラム、箱ひげ図など、様々なグラフを作成できます。データの傾向や特徴を視覚的に捉えるのに役立ちます。
メソッド | 説明 |
plot() | 各種グラフの作成(折れ線グラフ、散布図、ヒストグラムなど) |
hist() | ヒストグラムの作成 |
boxplot() | 箱ひげ図の作成 |
scatter() | 散布図の作成 |
bar()、barh() | 棒グラフの作成 |
pie() | グラフの作成 |
heatmap() | ヒートマップの作成 |
データをグラフで視覚化するためのメソッドがまとめられています。
Python Pandasを活用したプロジェクト例
Pandasの真価は実際のプロジェクトでの応用にあります。
本章では、Pandasを活用した具体例をフローチャートとともに紹介します。
株価予測モデルの構築
Pandasは金融データ分析に非常に強力なツールです。株価予測モデルの構築では、大量の時系列データを効率的に処理し、分析することが求められます。
【株価予測モデルの構築プロセス】
- データの取得:pandas_datareader,yfinance 使用
- データの前処理:欠損値処理.日付インデックス設定
- 特徴量エンジニアリング:移動平均,ボラティリティ計算
- モデルの構築と訓練:データ分割,スケーリング,訓練
- 予測と評価:テストデータでの予測,性能評価
- 結果の可視化:matplotlib,seaborn 使用
このように、Pandasを使用することで、株価データの取得から結果の可視化まで、一貫したワークフローを構築できます。
顧客セグメンテーション
顧客セグメンテーションは、ビジネスの成功に不可欠な戦略の一つです。Pandasを使用することで、大量の顧客データを効率的に処理し、意味のあるセグメントに分類することができます。
【顧客セグメンテーションのプロセス】
- データの収集:CRM,トランザクションデータ等
- データのクリーニング:欠損値処理,外れ値除去
- 特徴量エンジニアリング:新規特徴量作成.スケーリング
- セグメンテーションモデル適用:K-means,階層的クラスタリング等
- セグメントの解析:クラスタ特製の把握,プロファイリング
- 結果の可視化とレポート;セグメント別統計,顧客行動分析
Pandasを活用することで、顧客セグメンテーションの全プロセスを効率的に管理できます。データのクリーニングや特徴量エンジニアリングの段階でPandasの強力な機能を使用することで、高品質なデータセットを準備できます。
センサーデータの解析と可視化
IoTの発展に伴い、センサーデータの解析と可視化の重要性が高まっています。Pandasは、大量のセンサーデータを効率的に処理し、意味のある情報を抽出するための強力なツールです。
【センサーデータの解析と可視化のプロセス】
- データの収集:IoTデバイス,センサーからのデータ取得
- データの前処理:ノイズ除去,欠損値処理,正規化
- 特徴量抽出:統計量計算,周波数解析,次元削減
- データ分析:時系列分析,パターン認識,相関分析
- 異常検知:統計的手法,機械学習モデルの適用
- 結果の可視化:グラフ作成,ダッシュボード開発
このように、大量のデータの前処理や特徴量抽出においてPandasの強力な機能が発揮され、効率的なデータ分析が可能。センサーデータから有用なインサイトを抽出し、リアルタイムモニタリングや予防保全などの応用につなげることができます。
Python Pandasを活用するための学習リソース
Pandasは、Pythonでデータ分析を行うための強力なライブラリです。しかし、その機能の多さから、初心者にはどこから学んでいけば良いのか迷ってしまうこともあるでしょう。
そこで、Pandasを効果的に学ぶための学習リソースを厳選して紹介します。公式ドキュメントから体系的な書籍まで、自分のレベルに合ったリソースを選んでみてください。
これらを活用することで、Pandasを使いこなし、データ分析のスキルを着実に身につけることができるはずです。
Pandas公式ドキュメント
Pandas公式ドキュメントは、Pandasの使い方を網羅的に解説した信頼できる情報源です。Pandasのインストール、データの読み込み、フィルタリング、集計、結合など、データ分析に必要な操作を詳しく説明し、各関数の引数や戻り値、使用例も記載されています。
初心者には少し難しく感じるかもしれませんが、Pandasを本格的に使いこなすためには必須の情報源です。ユーザーガイド、APIリファレンス、チュートリアル、How-toガイドが充実しており、実際のデータ分析ですぐに使える知識を効率的に身につけられます。
Pandasを学ぶ際は、まず公式ドキュメントを参照する習慣をつけることをおすすめします。
『Pythonデータ分析/機械学習のための基本コーディング! pandasライブラリ活用入門 (impress top gear)』
本書は、データ分析と機械学習の基礎を学ぶ入門書です。pandas、matplotlib、seaborn、numpy、statsmodels、sklearnなどのライブラリを使い、データの取り込み、整備、集約から、可視化、モデル化、正規化、高速化までの一連の基本作法を学べます。
第1部から第5部にかけて、DataFrameの基礎、データ操作によるクリーニング、データの準備、モデルの適合、さらなる学びのための情報源などを解説。付録では、Python環境のインストールや文法も確認できます。データ分析と機械学習の基礎を体系的に学びたい初心者におすすめの一冊です。
『Pythonによるデータ分析入門 第2版 ―NumPy、pandasを使ったデータ処理』
本書は、データ分析におけるPythonの活用方法を網羅的に解説した書籍です。著者のWes McKinney氏は、Pythonの代表的なデータ分析ライブラリであるpandasの開発者として知られています。
本書では、NumPy、SciPy、pandas、Matplotlib、Jupyterなど、Pythonのデータ分析に欠かせないライブラリの使い方を丁寧に説明しています。これらのライブラリを駆使することで、科学計算、統計解析、機械学習といった分野だけでなく、金融や経済分野でのデータ分析にもPythonを活用できるようになります。
まとめ:Python Pandaでデータ分析を効率化
Pythonのデータ分析ライブラリ Pandas(パンダス)は、大量のデータを効率的に扱い、読み込みや書き込み、クリーニング、整形、分析、可視化など、データ分析に必要な一連の作業を簡単に行えます。
本記事では、Pandasの概要から主な機能、基本的な使い方、よく使われるメソッドまで、Pandasを使いこなすために必要な情報を網羅的に解説しました。Pandasを活用し、Pythonの読みやすい文法と組み合わせることで、データ分析のプロセスを効率化し、コードの可読性と再現性も向上します。
PythonやPandasに関するご相談やご質問がありましたら、Pythonの活用とAI開発に強い Jitera までお気軽にお問い合わせください。