Your data science toolkit
You can learn data science with one language and five libraries. The trap is collecting tools instead of using them, so this lesson covers what each tool is for and how to set up a project you can reopen in six months.
The core stack
| Need | Tools |
|---|---|
| Language | Python, SQL |
| Notebooks | Jupyter, VS Code, Google Colab |
| Data wrangling | Pandas, NumPy, Polars |
| Visualisation | Matplotlib, Seaborn, Plotly, Power BI |
| ML | scikit-learn, XGBoost, PyTorch |
SQL is not optional. Most company data lives in a database, and filtering or aggregating there is far faster than dragging everything into pandas. Python does the rest: cleaning, statistics, charts, models.
Set up an environment
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install jupyter pandas numpy matplotlib seaborn scikit-learn
jupyter notebook
A virtual environment per project keeps a pandas upgrade for one client from breaking another client's code. Freeze what you installed so a colleague can reproduce it:
pip freeze > requirements.txt
pip install -r requirements.txt # on the other machine
Pick a working surface
| Tool | Good for | Watch out for |
|---|---|---|
| Jupyter Notebook | Exploring, charts next to code | Out-of-order cells give misleading results |
| VS Code | Scripts, modules, git, debugging | Slightly more setup |
| Google Colab | Free GPU, nothing to install | Session resets; data must be re-uploaded |
A practical habit: explore in a notebook, then move anything you run twice into a .py file and import it.
A project layout that scales
sales-analysis/
├── data/
│ ├── raw/ # never edited, exactly as downloaded
│ └── processed/ # outputs of your cleaning script
├── notebooks/ # 01_explore.ipynb, 02_model.ipynb
├── src/ # reusable functions: load.py, clean.py
├── reports/ # charts and the final one-pager
├── requirements.txt
└── README.md # what this is, how to run it
Numbering notebooks tells the next person the order. Keeping data/raw/ untouched means you can always rebuild
everything from scratch.
Git, even for solo work
git init
printf ".venv/\ndata/\n*.ipynb_checkpoints\n" > .gitignore
git add . && git commit -m "Initial analysis of FY25 sales"
Ignore data/ and the virtual environment: repositories are for code, not for a 400 MB extract, and customer
data must never reach a public repo.
Beyond Python
Power BI, Looker Studio and Tableau are common in Indian businesses for dashboards that non-analysts open daily.
Excel remains the format your stakeholders will ask for, so df.to_excel is a real skill, not a step backwards.
Common mistakes
- Installing every library globally until versions conflict.
- Running notebook cells out of order, then trusting the output.
- Editing the raw file in Excel, so the analysis can never be reproduced.
- Committing API keys, passwords or customer extracts to git.
Practice
Create the folder structure above for a project of your own. Set up a virtual environment, install pandas and
matplotlib, write requirements.txt, add a .gitignore and make your first commit. Put one raw CSV in
data/raw/ and load it from a notebook using a relative path.