Is there a way to prefilter data before using read_csv to download data into pandas dataframe?
Typically yes, load everything, then filter your dataset.
But if you really want to pre-filter, and you're on a unix like system, you can prefilter using grep before even starting Python.
A compromise between them is to write the prefilter using Python and Pandas, this way you download the data, prefilter them (write prefiltered data to another csv) and play with your prefiltered data.
The way to go depend on the number of times you need to load the whole dataset, if you want to read once and discard it, there's no need to prefilter, but while working on the code, if you want to test it a lot of time, prefiltering may save you some seconds. But here again, there's another possibility: use ipython notebook, so you'll be able to load your dataset, filter it, then execute the block of code on which you're currently working any number of time on this already-loaded dataset, it's even faster than loading a prefiltered dataset.
So no real answer here, it really depends on your usage and personal tastes.
I'm working with the yelp dataset and of course it is millions of entries long so I was wondering if there was any way where you can just download what you need or do you have to pick away at it manually? For example, yelp has reviews on everything from auto repair to beauty salons but I only want the reviews on the restaurants. So do I have to read the entire thing and then drop the rows I don't need?