Ces deux locutions verbales en forme d'idiotismes corporels signifient, au sens figuré : bien deviner ; prévoir correctement ; avoir de la sagacité, de l'instinct.
"Avoir du nez" relève du langage courant. Et "Avoir du pif" appartient au registre argotique.
On dit par exemple : "Mon frère a du nez pour les bonnes affaires".
Ou : "On ne connaissait pas l'adresse exacte, mais ma frangine a du pif".
Sources : www.lalanguefrancaise.net et wiktionary.org