I am Devam Shah, learning Python, C++ DSA, and classical machine learning. This repository records small projects and experiments as I develop those skills.
A standard-library command-line tool for inspecting a dataset before analysis. It reports row counts, missing cells, distinct nonmissing values, and numeric minimum, maximum, and mean. It rejects duplicate/blank headers and ragged rows.
python csv_profiler.py examples/study_sessions.csv
python csv_profiler.py examples/study_sessions.csv --output report.json
python -m unittest discover -s tests -vRequires Python 3.12; no third-party dependencies. See the synthetic sample data and its generated report.
- Leading/trailing whitespace is trimmed; blank cells are missing.
- A numeric column must have only finite numeric nonmissing cells. Mixed text, NaN, and infinity cause the column to be treated as text.
- Distinct counts use trimmed text, so
1and1.0are distinct cell strings. - Empty files, duplicate headers, and inconsistent row widths give clear errors.
- Numeric cells and distinct values are retained in memory. This is a tool for small datasets, not streaming analysis of files larger than available RAM.
- Missingness does not automatically justify dropping rows or imputing values; those decisions depend on the dataset and analysis goal.
- Trace how
csv.readerhandles quoted commas and blank lines. - Explain the difference between missing, empty, and nonfinite numeric values.
- Run the tests, deliberately introduce a bug, and explain which test detects it.
- Add a feature yourself, such as a configurable missing-value marker, with tests.
- Improve Python programming and data handling.
- Practise Git branches, commits, pull requests, and code review.
- Understand classical ML algorithms and evaluate them correctly.
- Make useful, tested open-source contributions.
The initial CSV tool, tests, and documentation were prepared with Codex assistance. Future entries should record my own experiments and explanations. Repository activity is a learning record, not a claim of independent mastery.