There are no direct trains, but the trip can be made with one change in Budapest. Both Czech Railways and Regiojet offer trains from Prague to Budapest, with prices ranging around CZK 700. From Budapest-Kelenföld, you change to a train to Zamardi, one of the resort towns around Lake Balaton for another CZK 529. The trip from Prague to Budapest takes around 10 hours, and the one to Zamardi takes about an hour and a half.