Skip to content

Crop Area & Production Data


Provider
DAC&FW (Dept of Agriculture) / MOSPI / ICAR
Access Level
🟢 No Login Required
Formats Available
CSV, Excel, PDF
Coverage
National → District (some crops at block level)
Period
1966–2022 (some series from 1950)

What Data Is Available?

Source What It Has Level Access
aps.dac.gov.in District crop area, production, yield (kharif/rabi/zaid) District 🟢
agmarknet.gov.in Daily mandi (market) prices, arrivals Mandi 🟢
mospi.gov.in (DES) State-level crop production statistics State 🟢
agricoop.nic.in Agricultural census (operational holdings) District 🟢
fasal.gov.in FASAL crop forecast (remote sensing-based) District 🟢

How to Download from aps.dac.gov.in

Comprehensive District Agriculture Statistics:

  1. Go to aps.dac.gov.in
  2. Click "Data Dissemination""Comprehensive District Agriculture Statistics"
  3. Select: State → District → Crop → Year → Season
  4. Click Download CSV

What the CSV contains:

Column Description
State State name
District District name
Crop Crop name (Rice, Wheat, Sugarcane...)
Season Kharif / Rabi / Zaid / Annual
Year Agricultural year (e.g., 2021-22)
Area_000_Ha Area under crop (in 000 hectares)
Production_000_T Production (in 000 metric tonnes)
Yield_Kg_Ha Yield (kg per hectare)

Agmarknet — Mandi Prices

For daily commodity prices at wholesale mandis across India:

  1. Go to agmarknet.gov.in
  2. Select: Commodity → State → Market (Mandi) → Date range
  3. Download CSV — has daily arrival and price data

Key columns in Agmarknet: - Market — Name of the APMC mandi - Commodity — Crop name - Min_Price / Max_Price / Modal_Price — Price per quintal (₹) - Arrivals — Quantity arrived at mandi (quintals)


Python: Which Districts Produce the Most Rice?

import pandas as pd
import matplotlib.pyplot as plt

# Download from aps.dac.gov.in
df = pd.read_csv("district_crop_2021_22.csv")

# Filter: Rice, Kharif season, 2021-22
rice = df[(df['Crop'] == 'Rice') &
          (df['Season'] == 'Kharif') &
          (df['Year'] == '2021-22')].copy()

# Top 20 districts by rice production
top_rice = rice.nlargest(20, 'Production_000_T')[['State', 'District', 'Production_000_T', 'Yield_Kg_Ha']]
print(top_rice.to_string(index=False))

# Plot
fig, ax = plt.subplots(figsize=(10, 8))
top_rice.plot(kind='barh', x='District', y='Production_000_T', ax=ax,
               color='steelblue', legend=False)
ax.set_xlabel("Rice Production (000 tonnes)")
ax.set_title("Top 20 Rice Producing Districts — Kharif 2021-22")
for i, (state, prod) in enumerate(zip(top_rice['State'], top_rice['Production_000_T'])):
    ax.text(prod + 5, i, state, va='center', fontsize=8, color='gray')
plt.tight_layout()
plt.savefig("top_rice_districts.png", dpi=150)
plt.show()

✏️ Practice Exercise

Exercise 3.4 — Your District's Main Crop

Goal: Find the dominant crop in your district and how its area has changed.

  1. Go to aps.dac.gov.in
  2. Download data for your district → All Crops → All Seasons → 2010-11 to 2021-22
  3. Open in Excel → Create a PivotTable: Rows = Crop, Values = Area
  4. Which crop has the largest area? Is it kharif or rabi?

Track change over 10 years: - [ ] Has the area under your top crop increased or decreased? - [ ] Has yield (production per hectare) improved? - [ ] Are farmers shifting to any new crops?

Bonus — Check mandi prices: Go to agmarknet.gov.in and find the current modal price for your district's main crop. Is the farmer getting a good return?


Next Dataset: Water Resources (WRIS) →