Census of India¶
India's most comprehensive national survey — covering 1.4 billion people from national to village level since 1872.
What Is the Census of India?¶
The Census of India is conducted every 10 years and is the largest administrative exercise in the world. It counts every person living in India — recording their age, gender, religion, caste, education, occupation, and housing conditions.
The Census gives India detailed data on: - Population — age, sex, religion, language - Literacy — by gender, age group, SC/ST - Workers — occupation, industry, type of work - Housing — type of house, amenities (toilet, water, power) - Migration — origin, duration, reason
2011 vs 2024 Census
India's 2021 Census was postponed due to COVID-19 and has not yet been published in full. The 2011 Census remains the most recent comprehensive dataset. The 2024 Census enumeration has been announced — watch censusindia.gov.in for updates.
Key Table Series¶
The Census data is published in several "series" of tables:
| Series | Code | What It Contains |
|---|---|---|
| Primary Census Abstracts | PCA | Population, literacy, SC/ST — at village level |
| House Listing & Housing | HH | Housing conditions, amenities, type of structure |
| Workers Table | B | Main/marginal workers by industry and occupation |
| Migration Table | D | Origin, duration, and reason for migration |
| Disability Table | C | Type and degree of disability by age/sex |
| Language Table | C-16/17 | Mother tongue and bilingualism |
How to Download Census Data¶
Primary Census Abstracts (Village Level) 🟡¶
This is the most useful table for spatial analysis — it gives population, SC/ST count, literacy, and workers for every village.
- Go to censusindia.gov.in
- Click "Census Data" → "Primary Census Abstracts" (or search "PCA village")
- Download
PCA_2011_State.xlsxfor your state - Each row is a village/town — with ~40 columns of data
Key columns in PCA:
State_code, District_code, Sub_district_code, Village_code
Village/Town Name
Total_population, Male, Female
SC_Population, ST_Population
Literate (Male, Female)
Main_workers, Marginal_workers
District-Level Tables 🟡¶
For district-level summary statistics:
- Go to "Census Tables" → "District Census Handbook"
- Select your state → Select district
- Download PDF or Excel — contains 50+ indicator tables
Alternatively, use data.gov.in for structured district-level Census tables:
1. Go to data.gov.in
2. Search: "census 2011 district"
3. Find "Census Primary Census Abstract - District" → Download CSV
Using Python to Analyse Census Data 🔵¶
import pandas as pd
import geopandas as gpd
import matplotlib.pyplot as plt
# Load Census PCA for Maharashtra
pca = pd.read_excel("PCA_Maharashtra.xlsx", sheet_name="District")
# Calculate female literacy rate
pca['Female_Literacy_Rate'] = (pca['Literate_F'] / pca['Total_F']) * 100
# Top 10 districts by female literacy
top10 = pca.nlargest(10, 'Female_Literacy_Rate')[
['District', 'Female_Literacy_Rate']
]
print(top10.to_string())
# Join to GADM district boundaries and make a map
gadm = gpd.read_file("gadm41_IND_2.json")
gadm_mh = gadm[gadm['NAME_1'] == 'Maharashtra']
merged = gadm_mh.merge(pca, left_on='NAME_2', right_on='District')
fig, ax = plt.subplots(figsize=(10, 8))
merged.plot(column='Female_Literacy_Rate', ax=ax,
legend=True, cmap='YlOrRd',
legend_kwds={'label': 'Female Literacy Rate (%)'})
ax.set_title("Female Literacy Rate by District — Maharashtra (2011 Census)")
ax.axis('off')
plt.savefig("mh_female_literacy.png", dpi=150, bbox_inches='tight')
plt.show()
Other Useful Census Portals¶
| Portal | URL | What It Offers |
|---|---|---|
| Chandramauli Tables | censusindia.gov.in | Full Census 2011 table series |
| IndiaDataPortal | www.indiadataportal.com | Clean, queryable Census data |
| DevDataLab Census | devdatalab.org | Harmonised Census 1991–2011 panel data |
| SHRUG | shrug.io | Village-level panel combining Census + SECC + elections |
SHRUG — The Most Useful Village Dataset
The SHRUG (Sub-national Harmonised Raster and Unified Geography) dataset from Development Data Lab combines Census village data with satellite nightlights, SECC, and election results. It is the most comprehensive village-level panel dataset available for India. Download free from shrug.io.
✏️ Practice Exercise¶
Exercise 2.1 — Map Literacy Rates at District Level
Goal: Create a map showing literacy rates across India's districts.
Data needed: - Census 2011 PCA (download CSV) - GADM India Level 2 Shapefile
Steps: 1. Download Census District-level PCA (CSV format) from data.gov.in 2. Download GADM Level 2 shapefile from gadm.org 3. Open QGIS → Load both files 4. Join: Census table to GADM shapefile using district name (Vector → Data Management → Join Attributes) 5. Style: Graduated colours by literacy rate
Questions: - [ ] Which state shows the highest average literacy? - [ ] Which districts cluster together in "low literacy" zones? - [ ] Is there a north-south divide in literacy rates?
Expected pattern: Southern states (Kerala, Tamil Nadu, Goa) show higher literacy; some districts in Bihar, UP, and Rajasthan show lower rates.
Related Datasets¶
- SECC 2011 — Household-level deprivation data (complements Census)
- NFHS — Health and nutrition indicators
- GADM Boundaries — Join Census to boundaries
- SHRUG Portal — Village panel dataset (Census + SECC + DMSP lights)
Next Dataset: NFHS Health Survey →