この記事では、Pythonを使用してデータのクリーニングと前処理を行う基本的な手法について詳しく解説します。具体的なコード例とその解説、さらには応用例を含めて説明します。
目次
はじめに
データのクリーニングと前処理は、データ分析や機械学習の前段階で非常に重要なプロセスです。不正確または不完全なデータをそのまま利用すると、結果も不正確になる可能性が高くなります。
必要なライブラリ
この記事で使用する主なライブラリはPandasです。まずは、Pandasをインストールしてください。
pip install pandas
データの読み込み
Pandasを使用してCSVファイルやExcelファイルからデータを読み込む方法を見てみましょう。
CSVファイルの読み込み
import pandas as pd
# CSVファイルを読み込む
df = pd.read_csv('sample.csv')
# 最初の5行を表示
print(df.head())
Excelファイルの読み込み
# Excelファイルを読み込む
df = pd.read_excel('sample.xlsx')
# 最初の5行を表示
print(df.head())
データのクリーニング
データクリーニングでは主に以下のような作業が行われます。
- 欠損値の処理
- 外れ値の処理
- 重複データの削除
欠損値の処理
# 欠損値を0で埋める
df.fillna(0, inplace=True)
# 欠損値を平均値で埋める
df.fillna(df.mean(), inplace=True)
外れ値の処理
import numpy as np
# 平均と標準偏差を計算
mean = df['column_name'].mean()
std = df['column_name'].std()
# 外れ値の基準点
threshold = 3
# 外れ値をNULLにする
df['column_name'] = np.where(np.abs(df['column_name'] - mean) > (threshold * std), np.nan, df['column_name'])
重複データの削除
# 重複データを削除
df.drop_duplicates(inplace=True)
データの前処理
データの前処理では、分析やモデル作成に適した形にデータを変換します。
カテゴリデータの処理
# 文字列を数値にマッピング
df['category_column'] = df['category_column'].map({'Yes': 1, 'No': 0})
データの正規化
from sklearn.preprocessing import MinMaxScaler
# 正規化
scaler = MinMaxScaler()
df[['column1', 'column2']] = scaler.fit_transform(df[['column1', 'column2']])
応用例
例1: データフレームの結合
# 二つのデータフレームを結合する
result = pd.concat([df1, df2])
例2: 時系列データの処理
# 日付型に変換
df['date_column'] = pd.to_datetime(df['date_column'])
# 年、月、日、曜日を新しい列として追加
df['year'] = df['date_column'].dt.year
df['month'] = df['date_column'].dt.month
df['day'] = df['date_column'].dt.day
df['weekday'] = df['date_column'].dt.weekday
まとめ
Pythonでデータのクリーニングと前処理を行う基本的な手法について解説しました。これらの手法はデータ分析や機械学習において非常に重要です。特に、Pandasライブラリを用いれば、簡単かつ効率的にこれらの作業を行うことができます。
コメント