Good places are Roath, Cathays, Llanishen, Cyncoed, Pontcanna, Thornhill, Lisvane, and possibly the Bay (lots of new flats down there). Avoid Ely, Splott, Riverside, Adamsdown (often estate agents will try to fob you off calling it 'Lower Roath'), Tremorfa, Llanederyn, Llanrumney. Canton and Grangetown, it depends entirely on the area. Some streets can look nice but turn the corner and it's Basra.
The further up the valleys you go, the dodgier the people seem to get