Skip to content

About

Data Science Prodigy Infotech Task-1

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Population Distribution Visualization

Downloads World Bank population data (Prodigy-InfoTech Task 1 dataset) and produces two visualizations: a histogram of country population sizes and a bar chart of total population by region.

Project Structure

.
├── requirements.txt
├── visualize_population.py
├── data/               # downloaded CSVs (created at runtime)
└── output/             # generated charts (created at runtime)

Setup

pip install -r requirements.txt
python visualize_population.py

This downloads population.csv and metadata_country.csv into data/, then saves population_histogram.png and population_by_region.png into output/.

Tools & Libraries Used

  • Python 3 — core language
  • pandas — reading CSVs, merging population data with country metadata, filtering, grouping, and aggregating by region
  • matplotlib — building the histogram and horizontal bar chart, custom axis formatting, and saving figures to disk
  • pathlib — cross-platform path handling for data/output directories
  • urllib.request — downloading source CSVs directly from GitHub (no external HTTP library needed)

Skills Practiced

  • Data acquisition: fetching remote CSV files and caching them locally so the script doesn't re-download on every run
  • Data cleaning: coercing string columns to numeric with pd.to_numeric(..., errors="coerce"), dropping rows with missing values
  • Data merging: joining the population table with country metadata on Country Code to attach region/income group info
  • Filtering aggregates: excluding World Bank aggregate rows (e.g. "World", "High income") by requiring a non-empty Region
  • Data aggregation: groupby + sum to compute total population per region
  • Data visualization:
    • Histogram for a continuous distribution (country population sizes)
    • Horizontal bar chart for a categorical comparison (population by region), including value labels on each bar
    • Custom tick formatting (e.g. displaying axis values as 120M / 450K)
  • Code organization: separating concerns into download_data, load_population, plot_population_histogram, plot_population_by_region, and main functions
  • Reproducibility: pinning minimum library versions in requirements.txt

Dataset Source

World Bank population data via the Prodigy-InfoTech data-science-datasets repository (Task 1).

About

Data Science Prodigy Infotech Task-1

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages