【Pandas入門 第1回】データ分析はここから!SeriesとDataFrameの基本、CSV/Excelファイルの簡単読み書き 🐼
「PythonでCSVやExcelのデータを扱いたいけど、どうすればいいの?」
「データ分析って、まず何から手をつければいいんだろう?」
「NumPyは配列の計算が得意なのは分かったけど、行や列に名前が付いた、もっとExcelみたいなデータはないの?」
こんにちは! Python探検隊、隊長のPythonistaです! これまでNumPyやMatplotlibといったライブラリで、数値計算やデータ可視化の基礎を学んできましたね。いよいよ今回は、Pythonでのデータ分析において絶対的な主役となるライブラリ、Pandas (パンダス) の世界へ足を踏み入れます!
もしNumPyが「高性能な数値計算エンジン」だとしたら、Pandasは「データという荷物を自在に操るための、ラベル付きの多機能コンテナトラック」のようなものです。行や列に名前(ラベル)を付けて、欠損値のある不揃いなデータも賢く扱い、統計的な分析や加工を直感的に行えるように設計されています。
記念すべきPandas入門シリーズ第1回の今回は、Pandasの心臓部である2つのデータ構造Series
とDataFrame
の基本を理解し、データ分析の最初の、そして最も重要なステップであるCSVファイルやExcelファイルの簡単な読み書きをマスターします。この記事を読めば、あなたはどんな表形式データも恐れることなくPythonの世界に招き入れることができるようになります!
1. Pandasとは? なぜデータ分析に必須なのか?
Pandasは、Pythonで構造化データ(表形式のデータなど)を効率的に操作・分析するための、非常に強力で人気のあるライブラリです。データサイエンティストや分析者の多くが、日々の業務でPandasを愛用しています。
Pandasの主なメリット:
- 高機能なデータ構造: 行と列にラベルを持つ2次元の表形式データを扱うための
DataFrame
と、1次元のラベル付きデータを扱うSeries
が非常に強力です。 - 簡単なデータ入出力: CSV, Excel, JSON, SQLデータベースなど、多種多様なフォーマットのデータを簡単なコマンドで読み書きできます。
- 柔軟なデータ操作: データの選択、フィルタリング、並び替え、追加、削除といった操作が直感的に行えます。
- 欠損値の扱い: データ分析で必ず遭遇する欠損値(NaN)を、簡単に検出したり、補完したり、削除したりする機能が充実しています。
- 強力な集計・分析機能: グループごとの集計(`groupby`)、統計量の計算、時系列データの操作など、高度な分析機能が揃っています。
- NumPyベースのパフォーマンス: 内部の多くの処理はNumPyを基盤としているため、高速に動作します。
要するに、Pythonでデータ分析を行うなら、Pandasは避けては通れない、最高のパートナーなのです。
2. インストールと準備:Pandasの世界へようこそ
Pandasも外部ライブラリなので、利用する前にインストールが必要です。
2.1. インストール
ターミナルやコマンドプロンプトを開き、pipを使って以下のコマンドを実行してください。
pip install pandas
また、Excelファイル(.xlsx
)を扱う機能をフルで利用するには、openpyxl
というライブラリも一緒にインストールしておくのがおすすめです。
pip install openpyxl
2.2. インポートのお作法
PythonスクリプトでPandasを使う際は、慣習的にpd
という別名を付けてインポートします。
import pandas as pd
import numpy as np # PandasはNumPyと連携することが多いので、一緒にインポートするのが一般的
これでPandasを使う準備が整いました!
3. Pandasの主役!2つのデータ構造 `Series` と `DataFrame`
Pandasを理解する鍵は、その中心的な2つのデータ構造を理解することです。
3.1. Series
:ラベル付きの1次元データ
Series
(シリーズ) は、1次元の配列のようなデータ構造ですが、各要素にインデックス (index) と呼ばれるラベルが付いているのが特徴です。Excelシートの「1つの列」をイメージすると分かりやすいでしょう。
import pandas as pd
# PythonのリストからSeriesを作成
data_list = [100, 150, 120, 200]
index_labels = ['リンゴ', 'ミカン', 'バナナ', 'ブドウ']
s = pd.Series(data_list, index=index_labels)
print("--- Pandas Series ---")
print(s)
実行結果:
--- Pandas Series ---
リンゴ 100
ミカン 150
バナナ 120
ブドウ 200
dtype: int64
左側のリンゴ
, ミカン
...がインデックス、右側がデータです。インデックスを指定しない場合は、NumPyと同様に0から始まる整数のインデックスが自動で振られます。
3.2. DataFrame
:ラベル付きの2次元データ(表)
DataFrame
(データフレーム) は、Pandasの最も重要なデータ構造で、行と列の両方にラベルを持つ2次元の表形式データです。まさに、Excelのシートやデータベースのテーブルそのものをイメージしてください。
DataFrame
は、複数のSeries
を束ねたものと考えることもできます(各列が1つのSeries
に相当します)。
import pandas as pd
# Pythonの辞書からDataFrameを作成するのが一般的
data_dict = {
'商品名': ['リンゴ', 'ミカン', 'バナナ'],
'価格': [100, 150, 120],
'産地': ['青森', '愛媛', 'フィリピン']
}
df = pd.DataFrame(data_dict)
print("\n--- Pandas DataFrame ---")
print(df)
実行結果:
--- Pandas DataFrame ---
商品名 価格 産地
0 リンゴ 100 青森
1 ミカン 150 愛媛
2 バナナ 120 フィリピン
商品名
, 価格
, 産地
が列のラベル(カラム)、左端の0, 1, 2が行のラベル(インデックス)です。
4. データを手に入れる!CSV/Excelファイルの読み書き
データ分析の最初のステップは、外部にあるデータをプログラムに読み込むことです。Pandasはこれが非常に得意です。
4.1. サンプルCSVファイルの準備
練習用に、以下の内容のテキストファイルを作成し、sample_data.csv
という名前でPythonスクリプトと同じ場所に保存してください。
ID,Name,Age,City
1,Alice,25,New York
2,Bob,30,London
3,Charlie,22,Paris
4,David,35,Tokyo
4.2. CSVファイルの読み込み (pd.read_csv()
)
Pandasで最もよく使われる関数の一つがpd.read_csv()
です。たった1行でCSVファイルをDataFrame
として読み込めます。
import pandas as pd
file_path = 'sample_data.csv'
try:
df_from_csv = pd.read_csv(file_path)
print("\n--- CSVから読み込んだDataFrame ---")
# .head()メソッドで最初の5行を表示 (データが大きい場合に便利)
print(df_from_csv.head())
except FileNotFoundError:
print(f"エラー: ファイル '{file_path}' が見つかりません。")
実行結果:
--- CSVから読み込んだDataFrame ---
ID Name Age City
0 1 Alice 25 New York
1 2 Bob 30 London
2 3 Charlie 22 Paris
3 4 David 35 Tokyo
4.3. Excelファイルの読み込み (pd.read_excel()
)
Excelファイルの読み込みも同様に簡単です。pd.read_excel()
を使います。(openpyxl
ライブラリが必要です)
# df_from_excel = pd.read_excel('sample_data.xlsx', sheet_name='Sheet1')
# print(df_from_excel.head())
print("Excelファイルも pd.read_excel('ファイル名') で簡単に読み込めます。")
4.4. ファイルへの書き出し (.to_csv()
, .to_excel()
)
処理したDataFrame
をファイルに保存するのも簡単です。DataFrame
オブジェクトのメソッドを使います。
# df_from_csv が上記で読み込まれている前提
# 新しい列を追加してみる
df_from_csv['Country'] = ['USA', 'UK', 'France', 'Japan']
# CSVファイルとして書き出し
output_csv_path = 'output_data.csv'
df_from_csv.to_csv(output_csv_path, index=False, encoding='utf-8-sig')
# index=False は、DataFrameのインデックス(0,1,2...)をファイルに書き出さないための重要オプション
# encoding='utf-8-sig' はExcelで日本語が文字化けするのを防ぐためのおまじない
print(f"\n'{output_csv_path}' にデータを保存しました。")
# Excelファイルとして書き出し
output_excel_path = 'output_data.xlsx'
df_from_csv.to_excel(output_excel_path, index=False)
print(f"'{output_excel_path}' にデータを保存しました。")
5. 読み込んだデータを探索する:基本の4メソッド
データをDataFrameに読み込んだら、まずそのデータがどのようなものか概要を把握することが重要です。以下の4つのメソッドは必ず覚えておきましょう。
import pandas as pd
df = pd.read_csv('sample_data.csv')
# 1. .head(n): 最初のn行を表示 (デフォルトは5行)
print("\n--- .head() ---")
print(df.head(3))
# 2. .shape: DataFrameの形状(行数, 列数)をタプルで返す
print("\n--- .shape ---")
print(df.shape) # (4, 4)
# 3. .info(): 各列のデータ型や非null値の数など、DataFrameの要約情報を表示
print("\n--- .info() ---")
df.info()
# 4. .describe(): 数値列の基本的な統計量(個数, 平均, 標準偏差, 最小値, 四分位数, 最大値)を表示
print("\n--- .describe() ---")
print(df.describe())
特に.info()
と.describe()
は、データ分析の初期段階でデータの全体像を把握するために頻繁に使われます。
まとめ:Pandasでデータ分析の世界の扉を開こう!
今回は、Pandas入門シリーズの第1回として、Pythonでデータ分析を行うための最も基本的な知識を学びました。
- Pandasが表形式データを扱うための強力なライブラリであること。
- 中心的なデータ構造である
Series
(1次元)とDataFrame
(2次元)の概要。 - 最も重要な操作の一つである、CSV/Excelファイルの読み込み (
pd.read_csv
) と書き出し (.to_csv
)。 - 読み込んだデータの概要を把握するための基本メソッド (
.head()
,.shape
,.info()
,.describe()
)。
これで、あなたは様々な形式の表データをPythonの世界に持ち込み、その基本的な特徴を調べることができるようになりました。これは、データ分析における非常に大きな一歩です!
しかし、データをただ眺めるだけでは分析は始まりません。次回、第2回では、このDataFrameの中から「特定の行や列だけを選び出す」「特定の条件に合うデータだけをフィルタリングする」といった、データを自在に操るための強力な選択・抽出テクニック、loc
, iloc
, そしてブールインデックス参照について詳しく解説していきます。データ操作の真の面白さはここからです。お楽しみに!
コメント
コメントを投稿