title: Efficiently Read last 'n' rows of CSV into DataFrame
body: <p>A few methods to do this:</p>
  
  <ol>
  <li>Read the entire CSV and then use <code>df.tail</code></li>
  <li>Somehow reverse the file (whats the best way to do this for large files?) and then use <code>nrows</code> argument to read</li>
  <li>Somehow find the number of rows in the CSV, then use <code>skiprows</code> and read required number of rows.</li>
  <li>Maybe do chunk read discarding initial chunks (though not sure how this would work)</li>
  </ol>
  
  <p>Can it be done in some easier way? If not, which amongst these three should be prefered and why?</p>
  
  <p>Possibly related: </p>
  
  <ol>
  <li><a href="https://stackoverflow.com/questions/7167008/efficiently-finding-the-last-line-in-a-text-file">Efficiently finding the last line in a text file</a></li>
  <li><a href="https://stackoverflow.com/questions/15837767/reading-parts-of-13000-row-csv-file-with-pandas-read-csv-and-nrows?rq=1">Reading parts of ~13000 row CSV file with pandas read_csv and nrows</a></li>
  </ol>
  
  <p>Not directly related:</p>
  
  <ol>
  <li><a href="https://stackoverflow.com/questions/14663004/how-to-get-the-last-n-row-of-pandas-dataframe">How to get the last n row of pandas dataframe?</a></li>
  </ol>