A comprehensive data visualization and analysis platform for India's Census Data, built with Python and Streamlit. This interactive dashboard provides insightful visualizations and analytics at national, state, and district levels.
- 📈 Overall Analysis: National-level demographic insights and trends
- 🗺️ Statewise Analysis: Detailed statistics for individual states
- 🏘️ Districtwise Analysis: Granular data visualization at the district level
- 📊 Interactive Visualizations: Dynamic charts powered by Plotly and Seaborn
- 🎯 User-Friendly Interface: Clean and intuitive Streamlit dashboard
- 📱 Responsive Design: Works seamlessly across different screen sizes
- Population demographics (Male/Female distribution)
- Sex ratio calculations
- Literacy vs Illiteracy rates
- District-wise comparative analysis
- State-level trends and patterns
- Python 3.13 or higher
- pip or uv package manager
-
Clone the repository
git clone <repository-url> cd "Data Visualization with Python"
-
Set up virtual environment (optional but recommended)
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install dependencies
Using pip:
pip install -r requirements.txt
Or using uv:
uv pip install -r requirements.txt
-
Run the application
streamlit run app.py
-
Open your browser
click here to view the dashboard
Data Visualization with Python/
│
├── app.py # Main Streamlit application
├── overall.py # Overall analysis module
├── statewise.py # State-level analysis module
├── distwise.py # District-level analysis module
├── main.py # Additional main script
│
├── census_data/ # Census datasets
│ └── final_df.csv # Processed census data
│
├── notebooks/ # Jupyter notebooks for exploration
│ ├── 01_exp.ipynb
│ └── 02_exp.ipynb
│
├── messy_data/ # Raw/unprocessed data files
│
├── requirements.txt # Project dependencies
├── pyproject.toml # Project configuration
├── .gitignore # Git ignore rules
├── .python-version # Python version specification
└── README.md # Project documentation (this file)
- Streamlit - Web application framework
- Pandas - Data manipulation and analysis
- NumPy - Numerical computing
- Matplotlib - Static visualizations
- Seaborn - Statistical data visualization
- Plotly - Interactive charts and graphs
- Git - Version control
- Jupyter Notebook - Data exploration and prototyping
- VS Code - Development environment
Click on the "Overall-Analysis" button in the sidebar to view:
- National demographic overview
- Population distribution patterns
- Key statistical insights
- Select "Statewise-Analysis" from the dropdown
- Choose your desired state
- Click "Show analysis" to view state-specific data
- Select "Districtwise-Analysis" from the dropdown
- Choose a state (or select "All India")
- Select a specific district
- Click "Show analysis" to view detailed district data
The dashboard automatically calculates and displays:
- Sex Ratio:
(Female/Male) × 100 - Illiteracy Ratio:
(Illiterate/Literate) × 100 - District codes for easy identification
- Comparative visualizations across regions
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Working on optimizing large dataset loading times
- Enhancing mobile responsiveness for complex visualizations
This project is licensed under the MIT License - see the LICENSE file for details.
Pravat Patra
- Census data provided by the Government of India
- Streamlit community for excellent documentation
- Python data science community for amazing libraries
For questions, suggestions, or feedback, please open an issue in the repository.
⭐ Star this repository if you find it helpful!
Made with ❤️ and Python