# Cleanup change log

- Input: messy_contacts.csv: 33 rows x 6 columns
- Trimmed stray spaces in 10 cells
- Removed 2 completely empty rows (row 13, 20)
- email: lower-cased/normalised 3 emails
- phone: standardised 21 phone numbers to (###) ###-####
- signup_date: converted 10 dates to YYYY-MM-DD
- name: fixed capitalisation in 3 names
- Row 4 name: reordered 'Last, First' 'Okafor, Ruth' -> First 'Ruth', Last 'Okafor'
- Row 6 name: reordered 'Last, First' 'Lindqvist, Ana' -> First 'Ana', Last 'Lindqvist'
- Row 29 name: reordered 'Last, First' 'Wong, Eleanor' -> First 'Eleanor', Last 'Wong'
- Split 'name' into First Name / Last Name (3 'Last, First' names reordered; original column kept)
- Row 2 province: 'Ontario' -> 'ON'
- Row 3 province: 'bc' -> 'BC'
- Row 4 province: 'Ont.' -> 'ON'
- Row 6 province: 'Quebec' -> 'QC'
- Row 9 province: 'Alberta' -> 'AB'
- Row 12 province: 'Ontario' -> 'ON'
- Row 15 province: 'Ont' -> 'ON'
- Row 17 province: 'On' -> 'ON'
- Row 18 province: 'Ontario' -> 'ON'
- Row 22 province: 'bc' -> 'BC'
- Row 25 province: 'Quebec' -> 'QC'
- Row 26 province: 'British Columbia' -> 'BC'
- Row 27 province: 'Ontario' -> 'ON'
- Row 28 province: 'Ont.' -> 'ON'
- Row 31 province: 'ab' -> 'AB'
- province: normalised 15 region values to 2-letter codes
- Removed 4 duplicate rows (2 exact, 2 same 'email'); each is saved in removed_duplicates.csv, with the row it duplicates
- Row 9 removed: exact, duplicate of row 8
- Row 17 removed: exact, duplicate of row 16
- Row 19 removed: same email, duplicate of row 4
- Row 25 removed: same email, duplicate of row 24
- Possible duplicates: none found
- Flagged 3 rows for review (listed with the reason in flagged.csv; they remain in cleaned.csv); none deleted
- Rows: 33 in, 27 out (2 blank and 4 duplicate rows removed)
- Output: cleaned.csv: 27 rows, no flag column
- Delivery files: cleaned.csv, flagged.csv, possible_duplicates.csv, removed_duplicates.csv, CHANGELOG.md
