Pythonのデータ分析を始める方法!Pandasの基本を徹底解説
生徒
「Pythonを使って大量のデータを整理したり、分析したりしたいのですが、何から始めたらいいですか?」
先生
「それなら『Pandas(パンダス)』というライブラリを使うのが一番の近道ですよ。Excelのように表形式でデータを扱えるとても便利な道具です。」
生徒
「パンダス、ですか。プログラミングが初めての私でも、表の計算や集計ができるようになりますか?」
先生
「もちろんです!まずはデータの読み込み方や、基本の操作から順番に学んでいきましょう。」
1. Pandasとは?データ分析の強力な味方
Pythonでデータ分析を行う際に、欠かせないのがPandas(パンダス)というライブラリです。ライブラリとは、便利な機能を詰め合わせた「道具箱」のようなものだと考えてください。プログラミング未経験の方にとって、真っ黒な画面に文字を打ち込むのは難しく感じるかもしれませんが、Pandasを使えば、普段仕事や学校で使っているExcel(エクセル)のような感覚でデータを操作できます。
例えば、数万行ある名簿から特定の住所の人だけを探し出したり、売上データから月ごとの合計金額を計算したりといった作業が、わずか数行の命令で完了します。科学計算や統計学の世界でも広く使われており、AI(人工知能)に学習させるためのデータ作りにも必須のスキルとなっています。まずは「Pythonで表計算をするための魔法のツール」というイメージを持っておけば大丈夫です。
2. Pandasを準備しよう!インストールとインポート
Pandasを使うためには、まず自分のパソコンにその道具箱をインストールする必要があります。通常、Pythonと一緒にインストールされていますが、入っていない場合は「pip install pandas」というコマンドを使います。そして、プログラムの中で「これからPandasを使いますよ」と宣言することをインポートと言います。
以下のコードは、Pandasを読み込むための決まり文句です。as pdと書くことで、プログラムの中で「Pandas」という長い名前を書かずに「pd」という短いあだ名で呼ぶことができるようになります。これは世界中のプログラマーが使っている共通のルールなので、そのまま覚えてしまいましょう。
import pandas as pd
# Pandasが正しく読み込まれたかバージョンを確認してみましょう
print(pd.__version__)
実行結果として、数字が表示されれば準備完了です。これでデータ分析の世界への扉が開きました。
3. SeriesとDataFrame!2つのデータ形式を覚えよう
Pandasには、大きく分けて2つのデータの持ち方があります。1つ目はSeries(シリーズ)、2つ目はDataFrame(データフレーム)です。これを理解することが、データ分析の第一歩です。
Seriesは、1列だけのデータのことです。例えば「テストの点数」だけが並んでいる状態です。例えるなら、ノートに縦一列に書かれた数字のリストです。 対して、DataFrameは、縦と横に広がる表形式のデータです。「出席番号」「名前」「点数」がセットになった、まさにExcelのシートそのものです。
まずは、簡単な名簿データを自分でお手製で作ってみましょう。Pythonの「辞書型」という形式を使って、表を作ることができます。
import pandas as pd
# データの元となる情報を準備します
data = {
'名前': ['佐藤', '鈴木', '高橋', '田中'],
'年齢': [25, 30, 22, 35],
'都市': ['東京', '大阪', '名古屋', '福岡']
}
# DataFrame(表)を作成します
df = pd.DataFrame(data)
# 作成した表を表示します
print(df)
このコードを実行すると、次のような綺麗な表形式で出力されます。
名前 年齢 都市
0 佐藤 25 東京
1 鈴木 30 大阪
2 高橋 22 名古屋
3 田中 35 福岡
左端にある「0, 1, 2...」という数字はインデックス(索引)と呼ばれ、名簿の行番号のような役割を果たします。パソコンの世界では、数字は1ではなく0から数え始めるのが一般的なので、驚かないでくださいね。
4. データの抽出!特定の行や列を取り出す方法
表ができたら、次は必要な情報だけを取り出してみましょう。例えば「年齢の列だけが見たい」とか「2行目の人のデータだけ欲しい」といった要望に応える方法です。これにはiloc(アイロック)や列名の指定を使います。
列を取り出すときは、表の名前に続けて['列名']と書きます。行を取り出すときは、行番号を指定します。特定のデータを探し出す作業は、まるで図書館で目的の本を見つけるような感覚です。これをマスターすると、膨大なデータの中から一瞬で情報を抜き出せるようになります。
import pandas as pd
data = {
'商品名': ['りんご', 'バナナ', 'メロン', 'みかん'],
'価格': [100, 80, 500, 60],
'在庫': [20, 50, 5, 100]
}
df = pd.DataFrame(data)
# 「商品名」の列だけを取り出す
print(df['商品名'])
# 0番目(1行目)のデータを取り出す
print(df.iloc[0])
実行結果はこのようになります。
0 りんご
1 バナナ
2 メロン
3 みかん
Name: 商品名, dtype: object
商品名 りんご
価格 100
在庫 20
Name: 0, dtype: object
このように、データの一部を切り取る操作をプログラミング用語でスライシングと呼ぶこともあります。まずは「必要なところだけつまみ食いできる」と覚えておきましょう。
5. 条件で絞り込む!特定のデータを見つけよう
データ分析で最もよく使うのが「条件指定」です。「300円以上の商品だけ表示したい」や「東京に住んでいる人だけ抽出したい」といったケースです。Pandasなら、まるで人間にお願いするように簡単にフィルタリングが可能です。
プログラミング未経験の方が一番驚くのがこの機能です。Excelでフィルターボタンを何度もクリックする作業が、一行のコードで終わってしまいます。以下の例では、価格が高い商品だけを見つけ出してみます。不等号(>や<)を使うのがポイントです。これは算数で習った「より大きい」「より小さい」と同じ意味ですね。
import pandas as pd
data = {
'メニュー': ['カレー', 'ラーメン', '牛丼', 'パスタ'],
'値段': [800, 700, 500, 900],
'カロリー': [750, 600, 800, 550]
}
df = pd.DataFrame(data)
# 値段が750円以上のメニューだけを絞り込む
high_price = df[df['値段'] >= 750]
print("750円以上のメニューはこちら:")
print(high_price)
この命令を実行すると、条件に当てはまる「カレー」と「パスタ」だけが表示されます。このように条件を組み合わせて、自分が必要な情報だけをどんどん削り出していくのが分析の醍醐味です。
6. データの統計計算!合計や平均を一瞬で算出
Pandasの本当の凄さは、計算能力にあります。何万件というデータがあったとしても、平均値や合計値、最大値を一瞬で計算できます。これを基本統計量と呼びます。
例えば、クラス全員のテスト結果の平均を知りたいとき、一人ずつ足して人数で割る必要はありません。mean()という命令を使えば一発です。合計ならsum()、一番大きい値ならmax()を使います。さらに、describe()という魔法の命令を使うと、平均、標準偏差、最小値、最大値などをまとめて一つの表にして表示してくれます。まずはこれを使って、データ全体の雰囲気を掴むのがプロのやり方です。
import pandas as pd
# テストの点数データ
scores = {
'数学': [80, 90, 75, 60, 100],
'英語': [70, 85, 90, 65, 80]
}
df = pd.DataFrame(scores)
# 数学の平均点を計算
print(f"数学の平均点: {df['数学'].mean()}")
# 表全体の統計情報をまとめて表示
print(df.describe())
describeを実行した際の結果は以下のようになります。count(データの数)、mean(平均)、std(ばらつき具合)、min(最小値)などが一気にわかります。
数学 英語
count 5.000000 5.000000
mean 81.000000 78.000000
std 15.165751 10.368221
min 60.000000 65.000000
...
max 100.000000 90.000000
7. 外部ファイルの読み込み!CSVやExcelを使おう
これまではプログラムの中でデータを作ってきましたが、実際のお仕事では「保存されているファイル」を読み込むことがほとんどです。特にCSV(シーエスブイ)という形式のファイルがよく使われます。CSVとは、データをカンマ(,)で区切ったシンプルなテキストファイルのことです。
Pandasには、ファイルを読み込むためのread_csvという機能があります。これを使えば、パソコンの中に保存してあるデータを一瞬で読み込んで、これまでに学んだ分析操作ができるようになります。Excelファイル(.xlsx)も読み込むことができますが、まずは基本のCSVから慣れていきましょう。データ分析の第一歩は「すでにあるデータを取り込むこと」から始まります。
import pandas as pd
# sample.csv というファイルを読み込む想定のコードです
# 実際にはファイルが存在する場所を指定します
# df = pd.read_csv('sample.csv')
# 読み込んだデータの先頭5行だけを確認する
# print(df.head())
head()は、データの全体を見るのではなく、最初の数行だけチラ見するための便利な機能です。数万行あるデータの中身を全部表示してしまうとパソコンが重くなってしまうので、まずはこの命令で「どんなデータかな?」と確認するのが基本のテクニックです。
8. 欠損値の処理!データの穴を埋める重要性
実際の現場にあるデータは、いつも綺麗とは限りません。アンケートで答えが空欄だったり、機械の故障で記録が漏れていたりすることがあります。このようにデータが欠けている部分を欠損値(けっそんち)と呼び、Pythonでは「NaN(ナン)」と表示されます。
欠けたまま計算すると結果がおかしくなることがあるため、穴を埋めたり、その行を消したりする処理が必要です。Pandasではfillna()(穴を埋める)やdropna()(消す)といった命令が用意されています。料理で言えば、傷んだ野菜を取り除いたり、下ごしらえをしたりする工程と同じで、ここを丁寧に行うことで分析の精度がグッと上がります。
まとめ
今回の記事では、Pythonを用いたデータ分析の強力なサポーターであるPandas(パンダス)の基礎について詳しく解説してきました。Pandasは、表形式のデータを自由自在に操るためのライブラリであり、Excel(エクセル)で行っていたような集計、抽出、計算作業をプログラムによって自動化・効率化することができます。
データ分析の基本ステップは、まず環境を整え(インストールとインポート)、データを読み込み(DataFrameの作成やCSV読み込み)、中身を理解して整理する(統計計算や欠損値処理)という流れです。これらを習得することで、大量のビジネスデータや研究データを瞬時に処理し、価値ある情報を見つけ出すことが可能になります。
Pandasで習得すべき重要キーワードの振り返り
ここで、これまでに学んだ重要な用語と機能を再確認しておきましょう。これらはデータサイエンスの現場で日常的に使われる言葉です。
| 用語 | 意味・役割 |
|---|---|
| DataFrame(データフレーム) | 行と列で構成される表形式のデータ構造。Pandasのメイン機能。 |
| Series(シリーズ) | 1列(1次元)のデータ。DataFrameの各列はこれにあたる。 |
| read_csv() | CSVファイルを読み込んでDataFrameとして取り込む命令。 |
| describe() | 平均や最大値などの基本統計量を一括で表示する便利な関数。 |
| 欠損値 (NaN) | データが存在しない空白部分。fillna()などで処理が必要。 |
実践!データ分析の応用サンプルプログラム
まとめとして、これまで学んだ「読み込み」「抽出」「統計」「欠損値処理」をすべて組み合わせた実践的なコードを見てみましょう。この一連の流れが、実際のデータ分析作業の基本テンプレートになります。
import pandas as pd
import numpy as np
# 1. サンプルデータの作成(実際の業務ではCSV読み込みが多いです)
raw_data = {
'支店名': ['東京', '大阪', '名古屋', '福岡', '札幌'],
'売上': [500, 450, np.nan, 300, 250],
'担当者数': [10, 8, 5, 4, 3]
}
df = pd.DataFrame(raw_data)
# 2. 欠損値(NaN)を売上の平均値で埋める
mean_sales = df['売上'].mean()
df['売上'] = df['売上'].fillna(mean_sales)
# 3. 売上が400以上の支店だけを抽出(フィルタリング)
high_sales_branches = df[df['売上'] >= 400]
# 4. 新しい列「1人あたりの売上」を追加計算
df['1人あたり売上'] = df['売上'] / df['担当者数']
# 5. 最終的な結果を表示
print("--- 欠損値処理後の全データ ---")
print(df)
print("\n--- 売上400以上の支店 ---")
print(high_sales_branches)
このように、Pandasを使えばデータの不備を修正したり、新しい指標を計算したりすることが非常にスムーズに行えます。データ分析は一見難しそうに見えますが、一つ一つの操作はシンプルです。大切なのは、自分の手でコードを書いて、データがどのように変化するかを観察することです。
PythonにはPandas以外にも、グラフを作成するためのMatplotlibやSeaborn、機械学習を行うためのScikit-learnといったライブラリが豊富に揃っています。Pandasをマスターすれば、それら高度な技術への道も一気に拓けます。まずは身近なExcelデータをCSVに書き出して、Pythonで読み込むところから始めてみましょう。
生徒
「先生、ありがとうございました!Pandasを使えば、あんなに苦労していたデータの抽出や平均計算が、たった数行のコードで終わるなんて感動しました。特にdf[df['列名'] >= 条件]という書き方は、直感的で分かりやすいですね。」
先生
「そうですね。Excelのフィルター機能をコードで書いているような感覚ですよね。慣れてくると、数千、数万行のデータでも一瞬で処理できる快感が病みつきになりますよ。」
生徒
「でも、途中で出てきた『NaN』という欠損値には少し驚きました。データが完璧じゃないこともあるんですね。」
先生
「いいところに気づきましたね。実はデータ分析の現場では、綺麗なデータよりも、欠けていたり間違っていたりするデータの方が圧倒的に多いんです。だからこそ、Pandasを使った『データクレンジング(お掃除)』のスキルが非常に重宝されるんですよ。」
生徒
「データのお掃除、ですか。かっこいいですね!今後は自分の持っている売上データや成績表を使って、実際に平均を出したり、特定の条件でリストを作ったりしてみたいと思います。」
先生
「素晴らしい意気込みです。まずはread_csvでファイルを読み込むところから挑戦してみましょう。もしエラーが出ても、それは成長のチャンスです。Pandasという強力な道具を使いこなして、データサイエンスの世界を楽しんでくださいね。」
生徒
「はい!まずは自分の身近なデータを使って、コツコツ練習してみます。Pythonでのデータ分析が、これからの自分の大きな武器になりそうです!」