Osceola, IA has a population of 4,992 and is the 6,490th largest city in the United States. The population density is 703 per sq mi which is 1187% higher than the Iowa average and 676% higher than the national average. The median age in Osceola is 33 which is approximately 14% lower than the Iowa average of 38. In Osceola, 57% of the population over 15 years of age are married, 80% speak English and 17% speak Spanish. 68% of Osceola residents were born in Iowa, 23% were born out of state, 1% were born outside of the United States and 8% were foreign born.