Pythonで行うデータのクリーニングと前処理の基本

この記事では、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ライブラリを用いれば、簡単かつ効率的にこれらの作業を行うことができます。

コメント

コメントする

目次