Public and private keys are mathematically related through asymmetric cryptography and are paired to each other, so for each private key there is a related public key.
The public key is easily identified by having the private key, however incredibly difficult to do the reverse and find the private key by only having the public key.
In the context of the blockchain, public keys are addresses that can be shared with others so they know where to send you coins.
The private key proves ownership of the public key in question. It therefore allows the private key owner to control movement of coins from the public key address.
Note that by simply having the private key, the public key can be derived.