Shajapur é uma cidade e um município no distrito de Shajapur, no estado indiano de Madhya Pradesh.
Shajapur está localizada a . Tem uma altitude média de 443 metros (1453 pés).
Segundo o censo de 2001, Shajapur tinha uma população de 50,086 habitantes. Os indivíduos do sexo masculino constituem 52% da população e os do sexo feminino 48%. Shajapur tem uma taxa de literacia de 70%, superior à média nacional de 59.5%: a literacia no sexo masculino é de 77% e no sexo feminino é de 63%. Em Shajapur, 15% da população está abaixo dos 6 anos de idade.