Pythonでデータ分析を行う場合、ライブラリを活用することでより効率的に処理できるようになります。
データ操作を行うためのライブラリは多々ありますが、よく使用されているものの1つに Pandasがあります。
今回の記事では、Pandasの導入方法から基本的な使い方まで、詳しく解説していきたいと思います。
PythonのPandasとは
Pandasは、Pythonでデータの解析や加工を効率的に行うためのライブラリです。
表形式のデータを扱うことに特化しており、CSVや Excelファイルの読み込み、データの集計や並べ替え、欠損値の処理 (穴埋め) など、様々な処理を高速かつ簡潔に実行できます。
Pythonの標準機能でもデータ操作を行うことは可能ですが、大量のデータを扱う際にコード量が増えやすく、処理も複雑になりがちです。
Pandasを使用することにより、数行のコードで高度なデータ分析を可能とするため、業務システム開発や機械学習、マーケティング分析など、幅広い分野で活用されています。
Pandasで扱うデータ構造には、以下の2つがあります。
- Series … 1列分のデータを扱う構造
- DataFrame … Excelの表のような2次元データを扱う構造
特にDataFrameは、行と列を持つテーブル形式のデータを直感的に操作できるため、Pandasのメイン機能として活用されています。
Pandasのインストールと開発環境の構築手順
Pandasを使用する際は、事前にライブラリをインストールする必要があります。
具体的なインストール方法について見ていきましょう。
pipやcondaを用いた導入とライブラリのインポート
一般的には、以下のpipコマンドを使用してインストールします。
pip install pandasAnaconda環境を利用している場合は、以下のcondaコマンドでも導入可能です。
conda install pandasインストール後は、Pythonコード内でライブラリをインポートして使用します。
import pandas as pd「pd」 とエイリアスを付ける書き方は、Pandasで慣例的に使われています。
インストールが正常に完了しているか確認する場合は、__version__属性でバージョン情報を表示すると分かりやすいでしょう。
import pandas as pd
print(pd.__version__)データ分析に最適なJupyter Notebookの設定
Pandasを使用してデータ分析を行う際は、Jupyter Notebook を合わせてインストールしておくと便利です。
Jupyter Notebook は、Pythonをはじめとする様々な言語をブラウザ上で記述・実行できる総合開発環境です。
データの視覚化などの作業に適しており、コードと実行結果をまとめて管理することもできるため、Pandasの利用時にも頻繁に使用されています。
Jupyter Notebookは、以下のコマンドでインストールできます。
pip install notebook起動する場合は、ターミナルで以下を実行します。
jupyter notebookコマンド実行後、自動的にブラウザが起動して Notebook画面が表示されます。
Pandasの使い方:データの読み込みと基本操作
インストールが完了したら、実際に Pandasを使ってデータを操作してみましょう。
CSVやExcelファイルからのデータ読み込み
Pandasでは、CSVやExcelなど様々な形式のファイルを簡単に読み込めます。
CSVファイルを読み込む場合は、read_csv() を使用します。
import pandas as pd
df = pd.read_csv("sample.csv")
print(df)Excelファイルを扱う場合は、read_excel() を使用します。
df = pd.read_excel("sample.xlsx")Excelファイルを扱う際は、別途 openpyxlライブラリが必要になる場合があるため、状況に応じて以下のコマンドでインストールしてください。
pip install openpyxl読み込んだデータは DataFrameとして保持されるため、そのまま分析などの処理に利用できます。
列を指定してデータを取得する場合は、以下のように記述します。
print(df["売上"])複数列を取得する場合は、リスト形式で指定します。
print(df[["商品名", "売上"]])データの外観把握に欠かせない基本メソッド
Pandasには、外観把握に便利なメソッドが多数用意されています。
- head() … 先頭から指定の行数を表示
print(df.head()) # デフォルトは5行
print(df.head(3)) # 引数で行数を指定- tail() … 末尾から指定の行数を表示
print(df.tail()) # デフォルトは5行
print(df.tail(3)) # 引数で行数を指定- info() … データ件数や型情報を表示
print(df.info())- describe() … 統計情報を表示
print(df.describe())- isnull() … 欠損値の有無を取得
print(df.isnull().sum())また、columns 属性を使用して列名を取得することも可能です。
print(df.columns)データ分析を効率化するフィルタリングと集計処理
フィルタリングや集計処理などを活用することで、さらに効率的にデータ分析が行えます。
それぞれの使い方について確認していきましょう。
目的のデータを自在に抽出する条件フィルタリング
Pandasでは、条件を指定することで必要なデータのみ抽出できます。
例えば、売上が1000以上の商品を抽出する場合は、以下のように記述します。
filtered = df[df["売上"] >= 1000]
print(filtered)複数条件を指定する場合は、& (AND) や | (OR) を使用します。
filtered = df[
(df["売上"] >= 1000) &
(df["地域"] == "東京")
]
print(filtered)文字列検索を行う場合は、str.contains() が便利です。
filtered = df[df["商品名"].str.contains("PC")]
print(filtered)特定列で並び替える場合は、sort_values() を使用します。
sorted_df = df.sort_values(by="売上", ascending=False)
print(sorted_df)これらを組み合わせることで、膨大なデータの中から必要な情報を効率よく抽出できます。
グループ化による統計量の算出と要約
groupby() を使うことで、カテゴリ単位の集計が実行できます。
例えば、特定の項目の合計値を求める場合は、以下のように sum() と組み合わせて使用します。
grouped = df.groupby("地域")["売上"].sum()
print(grouped)平均値を算出する場合は、mean() を使用します。
grouped = df.groupby("地域")["売上"].mean()
print(grouped)複数の処理をまとめて計算することも可能です。
grouped = df.groupby("地域")["売上"].agg(
["sum", "mean", "max", "min"]
)
print(grouped)件数を集計する size() もよく利用されています。
print(df.groupby("地域").size())groupby() はデータ分析における中心機能の1つであり、売上分析やアクセス解析など、さまざまな場面で活躍するメソッドです。
まとめ
Pandasは、Pythonでデータ分析を効率化するための代表的なライブラリです。
まずは read_csv() や head() などの基本操作から慣れていき、徐々に groupby() や高度な分析処理へ発展させていくと、実践的に活用できるようになるでしょう。
Pythonの勉強方法は?
書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。
ただ、Pythonに限らず、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。
プログラミングスクールならテックマニアがおすすめ!
ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。
<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~
このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください