不要な情報が含まれるデータCSVを一括処理!Pythonでデータクレンジング、必要なデータを整理する方法
はじめに
不要な情報が含まれるデータを扱う際、例えば商品名に含まれる「【送料無料】」や「(期間限定)」といった不要な情報を削除し、整理されたアイテム名を取得したいことがあります。本記事では、ノイズデータCSVデータをPythonで一括処理し、アイテム名をクリーンアップする方法を紹介します。
CSVデータの前処理が必要な理由
ノイズデータがあるCSVデータには、以下のような特徴があります。
- 商品名にノイズが多い(例:「【期間限定】Apple iPhone 15 Pro (送料無料)」)
- データが大量にあるため手作業では大変
- 機械学習やデータ分析の前処理に適した形式にする必要がある
このようなデータをクリーンアップすることで、
- レポート作成や可視化がしやすくなる
- 検索エンジン最適化(SEO)に役立つ
- データ分析の精度が向上する
といったメリットがあります。
Pythonを使ったノイズデータCSVの一括処理
1. 必要なライブラリをインストール
pip install pandas
2. スクリプトの概要
以下のPythonスクリプトは、指定したフォルダ内のすべてのCSVファイルを処理し、「アイテム名」の列をクリーンアップします。
import os
import pandas as pd
import re
# 商品名のクリーンアップ関数
def clean_product_name(name):
if not isinstance(name, str):
return name # 文字列以外はそのまま返す
# 【】内の文字を削除
name = re.sub(r'【.*?】', '', name)
# 一般的なノイズワードを削除
noise_words = ['送料無料', '特価', '期間限定', 'セール', '即納', 'ランキング']
for word in noise_words:
name = name.replace(word, '')
# 余分なスペースを削除
name = re.sub(r'\s+', ' ', name).strip()
return name
# CSVファイルを一括処理する関数
def process_csv_files(folder_path):
for file_name in os.listdir(folder_path):
if file_name.endswith(".csv"):
file_path = os.path.join(folder_path, file_name)
df = pd.read_csv(file_path)
# アイテム名のクリーンアップ
if 'アイテム名' in df.columns:
df['アイテム名'] = df['アイテム名'].apply(clean_product_name)
df.to_csv(file_path, index=False, encoding='utf-8-sig')
print(f"Processed: {file_name}")
# 実行
csv_folder = r"D:\\git-rakuren\\rakuten_rankings"
process_csv_files(csv_folder)
print("すべてのCSVファイルの処理が完了しました。")
3. スクリプトの動作説明
clean_product_name()
で不要な情報を削除- 【】内のテキストを削除
- 「送料無料」「特価」などのノイズワードを削除
- 空白を整形
process_csv_files()
でフォルダ内の全CSVを順番に処理- pandasでCSVを読み込み
- 「アイテム名」のクリーンアップを適用
- クリーンアップ後のデータを上書き保存
4. 処理前後のデータ比較
処理前のCSVデータ
ジャンル | ランク | アイテム名 | 価格 |
---|---|---|---|
スマホ | 1 | 【期間限定】Apple iPhone 15 Pro (送料無料) | 150,000 |
PC | 2 | 【特価】Dell Inspiron 16 3520 ノートパソコン | 120,000 |
処理後のCSVデータ
ジャンル | ランク | アイテム名 | 価格 |
---|---|---|---|
スマホ | 1 | Apple iPhone 15 Pro | 150,000 |
PC | 2 | Dell Inspiron 16 3520 ノートパソコン | 120,000 |
まとめ
このスクリプトを使えば、ノイズデータのCSVデータを自動でクリーンアップし、分析しやすい状態に整えることができます。
- 大量のCSVデータを一括処理
- 商品名のノイズを削除して分析しやすくする
- 機械学習やSEO対策にも活用可能
データの前処理を効率化して、より価値のあるデータ分析や商品管理に役立てましょう!
コメント