diff --git a/doc/source/whatsnew/v0.18.1.txt b/doc/source/whatsnew/v0.18.1.txt index b733e5c19ee92..6b7ff25ab8def 100644 --- a/doc/source/whatsnew/v0.18.1.txt +++ b/doc/source/whatsnew/v0.18.1.txt @@ -408,7 +408,7 @@ Performance Improvements - Improved speed of SAS reader (:issue:`12656`) - Performance improvements in ``.groupby(..).cumcount()`` (:issue:`11039`) - +- Improved memory usage in ``pd.read_csv()`` when using ``skiprows=an_integer`` (:issue:`13005`) - Improved performance of ``DataFrame.to_sql`` when checking case sensitivity for tables. Now only checks if table has been created correctly when table name is not lower case. (:issue:`12876`) - Improved performance of ``Period`` construction and plotting of ``Period``s. (:issue:`12903`, :issue:`11831`) diff --git a/pandas/io/parsers.py b/pandas/io/parsers.py index d90569e1aebb0..f4527df56db88 100755 --- a/pandas/io/parsers.py +++ b/pandas/io/parsers.py @@ -775,9 +775,12 @@ def _clean_options(self, options, engine): # Converting values to NA na_values, na_fvalues = _clean_na_values(na_values, keep_default_na) - if com.is_integer(skiprows): - skiprows = lrange(skiprows) - skiprows = set() if skiprows is None else set(skiprows) + # handle skiprows; this is internally handled by the + # c-engine, so only need for python parsers + if engine != 'c': + if com.is_integer(skiprows): + skiprows = lrange(skiprows) + skiprows = set() if skiprows is None else set(skiprows) # put stuff back result['names'] = names