はじめに
Pythonのpandasは、データ分析におけるデータ処理を容易にするためのライブラリです。pandasを使えば、データのインポート、加工、統計処理、可視化が簡単にできます。本記事では、pandasのよく使う関数と操作についてまとめます。
データフレームの生成と操作:よく使う関数とメソッドの紹介
pandasで最も使われるデータ構造は、データフレームです。データフレームは、複数の行と列から構成される表形式のデータで、Excelのように扱えます。以下は、データフレームの生成方法とよく使われるメソッドです。
データフレームの生成
import pandas as pd # 辞書型データからデータフレームを生成 data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 'age': [25, 30, 35, 40], 'city': ['Tokyo', 'Osaka', 'Nagoya', 'Fukuoka']} df = pd.DataFrame(data) print(df)
出力結果:
name age city 0 Alice 25 Tokyo 1 Bob 30 Osaka 2 Charlie 35 Nagoya 3 David 40 Fukuoka
データフレームの操作
データフレームに対するよく使われる操作として、列や行の選択、並べ替え、集計などがあります。以下は、その一部です。
列の選択
# 特定の列を選択 df['name'] # 複数の列を選択 df[['name', 'age']]
行の選択
# 行番号で選択 df.loc[0] # 条件式で選択 df[df['age'] > 30]
データの並べ替え
# ageの値で昇順に並べ替え df.sort_values('age') # ageの値で降順に並べ替え df.sort_values('age', ascending=False)
データの統計量を取得する関数:平均、中央値、標準偏差などの基本統計量
pandasには、データの統計量を計算するための関数が用意されています。以下は、よく使われる統計関数の一部です。
基本統計量の計算
# 平均値の計算 df.mean() # 中央値の計算 df.median() # 最大値の計算 df.max() # 最小値の計算 df.min() # 標準偏差の計算 df.std() # 分散の計算 df.var()
分位数の計算
分位数とは、データを小さい方から並べたときに、上位何%に位置するかを表す数値です。pandasでは、quantile関数を使って分位数を計算できます。
# 25%点の計算 df.quantile(0.25) # 75%点の計算 df.quantile(0.75) # 百分位数の計算 df.quantile([0.25, 0.5, 0.75])
データの欠損値処理:欠損値の検出、削除、補完の方法
データには欠損値が含まれることがあります。欠損値をそのままにしておくと、分析結果に歪みが生じることがあります。pandasでは、欠損値を処理するための関数が用意されています。
欠損値の検出
isnull関数を使うことで、欠損値をTrue、欠損値でない値をFalseで表す真偽値のデータフレームを作成できます。
# 欠損値の検出 df.isnull()
欠損値の削除
dropna関数を使うことで、欠損値を含む行や列を削除できます。
# 欠損値を含む行を削除 df.dropna() # 欠損値を含む列を削除 df.dropna(axis=1)
欠損値の補完
fillna関数を使うことで、欠損値を指定した値で補完できます。
# 欠損値を0で補完 df.fillna(0) # 欠損値を平均値で補完 df.fillna(df.mean())
データのフィルタリングとソート:条件に基づいてデータを抽出・整理
pandasを使えば、データを条件に基づいてフィルタリングし、並べ替えることができます。以下は、よく使われる関数の一部です。
条件に基づくフィルタリング
query関数を使うことで、条件に基づくフィルタリングを簡単に行えます。
# ageが30以上のデータを抽出 df.query('age >= 30') # cityが'Tokyo'のデータを抽出 df.query('city == "Tokyo"')
特定の列に対するフィルタリング
isin関数を使うことで、特定の列に含まれる値に基づいてフィルタリングできます。
# cityが'Tokyo'または'Osaka'のデータを抽出 df[df['city'].isin(['Tokyo', 'Osaka'])]
データの並べ替え
sort_values関数を使うことで、データを任意の列で並べ替えできます。
# ageの値で昇順に並べ替え df.sort_values('age') # ageの値で降順に並べ替え df.sort_values('age', ascending=False)
まとめ
本記事では、Pythonのpandasライブラリでよく使われる関数と操作についてまとめました。データフレームの生成方法や操作方法、統計関数、欠損値処理、フィルタリング、並べ替えについて解説しました。pandasを使えば、データ分析に必要な操作が簡単に実現できます。是非、データ分析に活用してみてください。