The process of joining data from csv to a shapefile is called Table Join. In order to join attributes from a csv file to a shapefile, both need to have fields (column which contain data) that they share together or common to both. (I will show an illustration using QGIS 2.18, process should be similar on any recent version)
There are different ways or methods to perform this task. One approach is to perform a join through the layer properties.
(Note there are plugins that you could install and use, the method i describe does not require you to install any plugins).
- Right click the shapefile layer and choose properties.
- Click the Join menu and choose the required options.
- Click Ok, Apply and Ok.
Once complete you can open the table attribute of the shapefile and you will see the data from the csv file attached.