Python data workflow
Fix a pandas CSV Memory Error with Safe Chunks
Split or stream a large CSV for pandas without losing headers, changing identifier values or double-counting records.
Use the matching tool
Split Large File
What the error actually means
pandas can return an iterable TextFileReader when read_csv uses chunksize. Chunking reduces peak memory for operations that can be performed independently, but some global operations such as complex groupings require a different plan or an out-of-core engine.
Likely causes
- The parsed DataFrame needs several times the CSV’s disk size.
- Wide string columns and inferred object types consume substantial memory.
- All chunks are appended to a list, recreating the memory problem.
- The operation requires a global view of the complete dataset.
Chunked processing
Problem
df = pd.read_csv("large.csv")Correct pattern
for chunk in pd.read_csv("large.csv", chunksize=100_000): process(chunk)A safe repair workflow
- 1Read only required columns and specify identifier dtypes.
- 2Use chunksize for independent filtering, validation or aggregation.
- 3Write results incrementally instead of retaining every chunk.
- 4Reconcile processed and rejected record counts at the end.
How to verify the result
A file that downloads successfully is not automatically a correct file. Check the result at both the structural and business-data levels:
- Leading zeros remain in identifier columns.
- Chunk-level counts sum to the source count.
- The result is independent of chunk boundaries.
- Memory remains stable over several chunks.
Read the deeper guides
How to Prepare CSV Files for Python PandasPrepare CSV files for reliable pandas imports by making encoding, delimiters, nulls, dates, identifiers, and column types explicit.CSV File Size Limits (Excel, Sheets, Databases)What is the maximum size for a CSV file? Learn the limits of Excel, Google Sheets, and databases, and how to handle files that are too big.
Official references
Platform requirements and technical standards can change. These are the primary references used for this page.