A tool to automatically clean and merge multiple raw sales CSV files into one standardized, duplicate‑free CSV.
This script:
- Reads all CSV files from a folder
- Standardizes inconsistent column names
- Cleans messy headers
- Parses dates
- Converts numeric fields
- Removes blank rows
- Removes duplicates
- Merges everything into a single
cleaned_sales.csv
✔ Accepts entire folder of CSVs ✔ Handles large datasets (50k+ rows) ✔ Auto column normalization ✔ Duplicate auto‑removal ✔ Auto date conversion ✔ Custom duplicate rules ✔ CLI options ✔ EXE build support ✔ Can be scheduled to run automatically
- Python 3.9+ recommended
- pandas
python -m venv .venv
.venv\Scripts\Activate.ps1
.venv\Scripts\activate
pip install pandas
python normalize_sales.py --input-dir raw_csvs --output cleaned_sales.csv
python normalize_sales.py -i raw_csvs --duplicate-subset order_id,date
python normalize_sales.py -i raw_csvs --recursive
python normalize_sales.py -i raw_csvs --dry-run
python normalize_sales.py -h
Install PyInstaller:
pip install pyinstaller
Build:
pyinstaller --onefile normalize_sales.py
EXE will appear inside:
dist/normalize_sales.exe
- Open Task Scheduler
- Create Basic Task
- Trigger: Daily
- Action: Start a Program
- Program/script:
C:\path\to\normalize_sales.exe
- Add Arguments:
--input-dir "C:\path\to\raw_csvs" --output "C:\path\to\cleaned_sales.csv"
- Start In:
C:\path\to\dist
- Save
Now your cleaner runs automatically.
sales_project/
│ normalize_sales.py
│ normalize_sales.spec (auto‑generated by PyInstaller)
│ README.md
│ cleaned_sales.csv (output)
│ .gitignore
│
├── raw_csvs/ (input CSVs)
│ file1.csv
│ file2.csv
│
├── dist/ (exe output)
│ normalize_sales.exe
│
├── build/ (pyinstaller build cache)
│
└── .venv/ (virtual environment)
Note: normalize_sales.spec is generated automatically during EXE build and can be regenerated anytime.
- Web UI
- GUI App
- Auto‑email reports
- Cloud sync