Grafton is a city in Worth County, Iowa, United States. The population was 252 in the 2010 census, a decrease of 13.1% from the 290 population in the 2000 census. It is part of the Mason City Micropolitan Statistical Area.