Williams is located in Hamilton county Iowa with a geographic area of 0.8 square miles. The total population in Williams is 327 with 51.1% male and 48.9% female. Children under age 5 represent 4.9% of the population, under age 18 equal 18.3% of the population and over age 65 is 17.4% of the population. The median household income is $53,750, per capita income is $26,303. There are a total of 128 housing units with 68.0% owner occupied. Education includes 25.0% of residents that are high school graduates and 12.5% with a bachelor's degree or higher. The average temperature in Williams in the summer is 72 degrees, and in the winter 23 degrees.