CodeGym /コース /Python SELF JA /データのフォーマットと不要な情報からのテーブルのクリーンアップ

データのフォーマットと不要な情報からのテーブルのクリーンアップ

Python SELF JA
レベル 28 , レッスン 2
使用可能

1. なぜこれが必要なの?

自分がデータ工場のエンジニアだと想像してみて。原材料(データ)を分析し、整理して完成品(インサイト、レポート)を得る必要がある。クリーンアップとフォーマットをしないと、データは散らばった部品みたいなもので、それを何とかするのは難しいよね。

クリーンでフォーマットされたデータは、見た目が綺麗なだけじゃなく、正確な分析やモデル作成の重要な条件でもあるんだ。不適切に処理されたデータは間違った結論を導く可能性があるし、仕事の終わりに「平均年齢を計算したつもりが、年齢の代わりに小さなデータの破片だった!」なんて状況は避けたいよね。

フォーマットの主な目的

コードに取り掛かる前に、どんな問題を回避し、フォーマットで解決したいのかを見てみよう:

  • 空白行や列の削除: 空っぽのポケットみたいに役立たないし、紛らわしい。
  • 重複データの削除: 重複したレコードはデータにノイズを加える。
  • 欠損値の補完: チーズの穴みたいで、時々美味しいものに詰めた方がいいよね。
  • データ型の変換: 年齢が数値であることを確認するのは大事だよね。同時に"25年の経験"なんて文字列と混乱しないように。

2. データのクリーンアップとフォーマットのためのツール

何が必要なのか分かったところで、次はそれを実現するためのツールを見てみよう。まるでハイテクな工具箱みたいに:

  • 欠損値の削除: dropna()
  • 重複データの処理: duplicated()drop_duplicates()
  • 欠損値の補完: fillna()
  • データ型の変換: astype()

欠損値の削除

欠損値って、いつも厄介なタイミングで現れるよね。dropna()を使って、不要な古いソックスみたいに取り除けるんだ。例を見てみよう:

Python

import pandas as pd

# 欠損値を含むDataFrameを作成
data = {'名前': ['アンナ', 'イワン', None, 'マリア'],
        '年齢': [29, None, 34, 23],
        '都市': ['モスクワ', 'サンクトペテルブルク', 'ノボシビルスク', None]}

df = pd.DataFrame(data)

# 欠損値を含む行を削除
cleaned_df = df.dropna()

print(cleaned_df)

このコードでは、少なくとも1つの欠損値が含まれる行をすべて削除するよ。

重複データの処理

時々データに重複が含まれることがあるよね。違いがないのに「間違い探し」みたいな感じで。こういったレコードはdrop_duplicates()で取り除けるんだ。

Python

# 重複のあるDataFrameを作成
data = {'名前': ['アンナ', 'イワン', 'アンナ', 'マリア'],
        '年齢': [29, 34, 29, 23]}

df = pd.DataFrame(data)

# 重複データを削除
unique_df = df.drop_duplicates()

print(unique_df)

欠損値の補完

欠損値の補完方法はいろいろあるんだ。例えば平均値や固定値で埋めるとか。fillna()メソッドが役立つよ:

Python

# '年齢' の欠損値を列の平均値で補完
df['年齢'] = df['年齢'].fillna(df['年齢'].mean())

print(df)

データ型の変換

データ型の変換は時々必要だよ。文字列の値と期待される数値を混同しないために:

Python

# '年齢' 列のデータ型を整数に変換
df['年齢'] = df['年齢'].astype(int)

print(df)

3. 実践: 実データセットのクリーンアップ

実際のレポート向けデータセットをクリーンアップしてフォーマットしてみよう。例えば、架空のExcelファイルに販売情報が入っているとするよ。

Python

# Excelからデータを読み込む
filename = "sales_data.xlsx"
df = pd.read_excel(filename)

# 任意の列に欠損値がある行を削除
df = df.dropna()

# 重複レコードの削除
df = df.drop_duplicates()

# 欠損値を列の平均値で補完
df['販売'] = df['販売'].fillna(df['販売'].mean())

# データ型の変換
df['商品コード'] = df['商品コード'].astype(str)

# フォーマット済みデータをExcelに保存
df.to_excel("cleaned_sales_data.xlsx", index=False)

結果的に、分析とレポート作成の準備が整ったクリーンなExcelファイルができるよ。

4. データクリーンアップにおける典型的な誤り

電子機器の修理と同じように、データでも何かを間違えることはある。以下は避けるべき典型的な間違いだよ。

重複データと一緒に有用な情報も削除すること。時には重複がデータのエラーの兆候で、その原因を解明する必要があることもある。データ型を間違えること。別のフォーマットに変換するのが簡単そうに見えても、その変換が適切でない場合にデータが失われる可能性がある。

これらのアドバイスを守りながら、提案されたステップを実行すれば、データが最初はデータアナリストの悪夢のように見えても、簡単で楽しく作業できるようになるはずだよ。そして、データもコードも常にクリーンであるべきだってことを忘れずに!

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION