Data visualization on three factors
What you can do is discretize happiness index using cut() and assign labels to it.
For plotting then you can use groupby boxplot which will show effect of both income sources on a particular happiness index bin.
Refer GroupbyBoxplot
If you want distribution of happiness index then you can try:
Color Scales