Buena Vista County is a county located in the U.S. state of Iowa. As of the 2020 census, the population was 20,823. Its county seat is Storm Lake. The county is named for the final victory of Field General Zachary Taylor in the Mexican–American War.