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.
Grafton is located at 43°19′46″N 93°4′13″W / 43.32944°N 93.07028°W / 43.32944; -93.07028 (43.329394, -93.070164).
According to the United States Census Bureau, the city has a total area of 0.3 square miles (0.8 km²), all of it land.