Budapest is charming capital of Hungary sometimes called "Paris of the east". If you want to make your own opinion about this statement then do not hesitate and head there using one of the available means of transport. Train or bus from Prague can be your best choice if you dont have car and dont want to fly. Another good idea is to combine the trip to Budapest with going to Vienna as well because these two cities are not so far from each other and both are definitely worth visiting.
There are six trains that take you from Prague to Budapest every day - 3 of them depart from main train station, 3 from Holesovice. The end station of all the trains from Prague is Keleti - the biggest railway station in Budapest with metro station located eastern of the city centre. One-way ticket will cost you 19 euros if you buy it online here at least 3 days in advance. Otherwise you need to buy it at the station and it will cost probably more. The journey takes about 7 hours which is quite long but still better than 7 hours in the bus.
Another good and cheap option for travelling to Budapest is by using bus connection that is provided by two companies - Student agency and Eurolines. Student agency offers slightly better services - you get newspapers or some magazine for reading and drink for free. It takes about 7 and half hours to get to Budapest from Prague. All buses starts at Florenc bus terminal, follow highway to Brno, Bratislava and finish at Nepliget bus station in Budapest where the football stadium and metro station is situated.
Student agency operates two buses every day departing from Florenc at 6.30 and 16.00. One way ticket from Prague to Budapest costs 20 euros and you can buy it either at Florenc or online here. Eurolines provides one bus a day that departs 22.30, go overnight and arrives to Budapest at 6.00. Prices are higher than with Student agency - check website of the company at www.bei.cz.
If you want to go to Budapest by plane then check offers of local low cost airways Click4Sky and Smartwings that have headquarters at airport Prague Ruzyne. They have reasonable prices but dont fly every day and departure time is usually also not so comfortable. Another companies like Czech airlines provide this connection as well but they are much more expensive.