プロジェクトフォルダーを開く
ご自身のエクスポートとそのコピーが入ったフォルダーを選びます。ファイルツールはそのチャットのフォルダー内で動作します。
ここでいうデータクリーニングの自動化とは、あなたが書き出したルールをファイルに適用し、結果を新しいファイルとして保存する Python スクリプトのことです。余分な空白、重複した行、文字列の数値を含むエクスポートが 1 つあるとします。スクリプトはあなたの手元に残ります。読んで再実行でき、元のファイルが出力先になることはありません。
ご自身のエクスポートとそのコピーが入ったフォルダーを選びます。ファイルツールはそのチャットのフォルダー内で動作します。
どの列の空白を削除するか、どのキーで重複を見つけるか、空欄をどう扱うかを伝えます。Plan only は先に手順を一覧にします。
Shell があなたの Python コマンドでスクリプトを実行し、実際の終了コードと出力された行数を表示します。
承認する前に、diff を読み、新しいファイルを元のファイルと比べ、行を手作業で抜き取り確認します。
./1 ファイル./clean_customers.py保存しましたyour Python command clean_customers.py終了コード 0./clean_customers.py17 行rows = [
{"email": " Ann@Mail.com ", "age": "34"},
{"email": "ann@mail.com", "age": "34"},
{"email": "Bo@Mail.com", "age": "n/a"},
]
seen, clean = set(), []
for row in rows:
email = row["email"].strip().lower()
if email in seen:
continue
seen.add(email)
try:
age = int(row["age"].strip())
except ValueError:
age = None
clean.append({"email": email, "age": age})
print("rows in:", len(rows), "rows out:", len(clean))空白を削除し、メールアドレスを小文字にし、set で重複を飛ばし、年齢の文字列を数値または None に変換します。架空の 3 行が入っています。実行すると、入力 3、出力 2 と表示されます。
大きな CSV から重複を取り除くには、まず明確なキーが必要です。たとえば正規化したメールアドレスです。完全一致の重複では、空白や大文字小文字だけが違う行を見逃してしまうからです。Fredit Flow は grep でキー列の余分な空白や大文字を探し、write_file が dedupe.py を保存し、Shell がエクスポートのコピーに対して、あなた自身の Python コマンドで実行します。スクリプトは各キーの最初の行を残し、それ以外を別のファイルに書き出します。元のファイルは残ります。出力される 2 つの行数を確認し、レビュー用ファイルを開いて、各ペアが本当に同じ顧客かどうかを確かめてから、出力を承認してください。
CSV データのクリーニングが 1 回で終わることはまれで、クリーニングと分析の間の反復は普通のことです。グラフにおかしな値が現れ、ルールを追加して再実行します。変更を頼んでください。edit_file がスクリプトを更新して diff を表示し、Shell が同じコピーに対して再実行します。新しい実行では別の名前の出力ファイルに書き込むようにして、最初のファイルを残してください。これは diff で確認できます。その後、同じ出所の 2 つ目のサンプルファイルで 1 度実行します。終了コードや行数がおかしければ、そこで止まり、diff をもう一度読んで、自分で判断してください。