Pythonでデータ分析や機械学習を行う際に欠かせないのが「pandas(パンダス)」ライブラリです。ここでは、pandasの特徴やできること、基本的な使い方を具体的なコード例とともに詳しく解説します。
pandasは、Pythonで表形式データ(行と列を持つデータ)を効率的かつ直感的に扱うためのデータ分析ライブラリです。CSVやExcel、SQLなど多様なデータ形式に対応し、データの読み込み・加工・集計・可視化まで幅広い機能を備えています。
import pandas as pd
# CSVファイルの読み込み
df = pd.read_csv('data.csv')
as pd
とエイリアスを付けるのが通例です。
print(df.head()) # 先頭5行
print(df.tail()) # 末尾5行
print(df.shape) # (行数, 列数)
print(df.columns) # 列名一覧
print(df.info()) # データ型や欠損情報
print(df.describe())# 基本統計量
info()
でデータフレームの情報、describe()
で統計量を取得できます。
ages = df['age'] # 列の抽出
# 行・列の指定抽出
print(df.loc[0, 'name']) # ラベル指定
print(df.iloc[0, 1]) # インデックス指定
# 条件による抽出
adults = df[df['age'] >= 20]
.loc
や.iloc
を使って柔軟にデータを抽出できます。
print(df.isnull().sum()) # 欠損値カウント
df = df.fillna(0) # 欠損値を0で埋める
df = df.dropna() # 欠損値を含む行を削除
df = df.drop_duplicates() # 重複データの削除
df = df.rename(columns={'old_name': 'new_name'}) # 列名の変更
df = df.sort_values('age') # 並べ替え
欠損値処理や並べ替え、重複削除も簡単に行えます。
# 新しい列の追加
df['age_category'] = pd.cut(df['age'], bins=[0, 20, 40, 60, 100], labels=['~20', '21-40', '41-60', '61~'])
# 型変換
df['date'] = pd.to_datetime(df['date'])
データの加工や型変換も豊富なメソッドが用意されています。
# グループごとの平均値
mean_salary = df.groupby('department')['salary'].mean()
# ピボットテーブル
pivot = df.pivot_table(index='department', columns='gender', values='salary', aggfunc='mean')
groupby()
やpivot_table()
で集計やクロス集計ができます。
df['salary'].plot.hist() # ヒストグラム
df.plot.scatter(x='age', y='salary') # 散布図
pandasはmatplotlibと連携し、簡単にグラフ化も可能です。
df.to_csv('output.csv', index=False) # CSVファイルへの保存
データの保存もワンライナーで実行できます。
pandasは、データの読み込みから前処理、集計、可視化までをシンプルなコードで効率的に実現できるPythonの代表的なデータ分析ライブラリです。基本操作を押さえることで、データ分析の幅が大きく広がります。まずはサンプルデータを使って実際に手を動かし、pandasの便利さを体感してみてください