There are a wide variety of anti-frizz serums that will help your hair become less frizzy. You can also think about buying shampoo and conditioner that fights frizz.
But, for on-the-spot relief of frizz, I would suggest pulling your hair into a ponytail (if you can) or trying to manually flatten your hair. If that doesn't work, sometimes actually dampening your hair reduces frizz. But, whatever you do, don't brush your hair. It just adds more static and frizz into your hair.
To make your hair frizzy you simply take a comb and a few pieces of hair and then rub the comb through the hair until it becomes frizzy.
You can use many products on your dry frizzy hair. They make hot oil treatments to help get rid of the frizzy hair. You can also use shampoos specifically designed for frizzy hair. They also make Anti freeze hair gels to help frizzy hair.
Lithium
You can make your hair less frizzy by using a good conditioner. You can also use coconut oil, leave on for 20 minutes, and then wash your hair as your normally do.
A good conditioner and serum go a long way in mending frizzy hair.
buy a smothing serum
I have have really frizzy hair too. Make sure you use lots of conditioner(not a coin sized amount). When putting your hair in a ponytail, leaving it open, putting it half up, etc use spray water in it. And remember don't freak out about it, it is just a phase.
Buy an anti-frizz spray.
Make it straigt and cut a thick bang.
I can answer the first part...What makes your straight hair curly is severl things one sleping on it or with your hair in a bun or ponytail. Second water can make you hair curly again or steam.. :)
Blow-dry it and brush it and then (straiten it or curl it-optional)
Because some peoples hair is not naturally straight. You have to have a hair straightener to make it stay straight, if you get it wet it will go frizzy