Sometimes files are too big to load all at once. Chunked reading helps us read big files bit by bit without crashing.
When your computer runs out of memory loading a big file.
When you want to process a large file step-by-step.
When you want to analyze or clean data in parts.
When you want to save time by reading only small pieces at a time.
Syntax
Pandas
pd.read_csv('filename.csv', chunksize=number)
The chunksize sets how many rows to read at once.
This returns an iterator you can loop over to get each chunk as a DataFrame.
Examples
Read the file in chunks of 1000 rows and print the first 5 rows of each chunk.
Pandas
chunks = pd.read_csv('data.csv', chunksize=1000)
for chunk in chunks:
print(chunk.head())
Read the file in chunks of 5000 rows and store all chunks in a list, then print how many chunks were read.
Pandas
chunks = pd.read_csv('data.csv', chunksize=5000)
chunk_list = [chunk for chunk in chunks]
print(len(chunk_list))
Sample Program
This program creates a large CSV file with 10,000 rows, then reads it in chunks of 3,000 rows. It sums the 'value' column in each chunk and adds them up to get the total sum.
Pandas
import pandas as pd
# Create a sample CSV file with 10,000 rows
sample_data = pd.DataFrame({
'id': range(1, 10001),
'value': [x * 2for x inrange(1, 10001)]
})
sample_data.to_csv('large_sample.csv', index=False)
# Read the CSV file in chunks of 3000 rows
chunks = pd.read_csv('large_sample.csv', chunksize=3000)
# Process each chunk: calculate sum of 'value' column
total_sum = 0for chunk in chunks:
total_sum += chunk['value'].sum()
print(f'Total sum of value column: {total_sum}')
OutputSuccess
Important Notes
Using chunked reading helps avoid memory errors with big files.
You can process or filter each chunk before combining results.
Remember to close files or use context managers if needed.
Summary
Chunked reading lets you handle big files in small parts.
Use chunksize in pd.read_csv to read pieces.
Process each chunk separately to save memory and time.
Practice
(1/5)
1. What is the main purpose of using chunksize in pd.read_csv when working with large files?
easy
A. To read the file in smaller parts to save memory
B. To speed up the reading by reading the whole file at once
C. To convert the file into a different format
D. To skip rows randomly in the file
Solution
Step 1: Understand the role of chunksize
The chunksize parameter splits a large file into smaller parts (chunks) when reading.
Step 2: Identify the benefit of chunked reading
Reading in chunks helps save memory by not loading the entire file at once.
Final Answer:
To read the file in smaller parts to save memory -> Option A
Quick Check:
Chunked reading = smaller parts = memory saving [OK]
Hint: Chunksize reads file in parts to save memory [OK]
Common Mistakes:
Thinking chunksize speeds up reading by reading all at once
Confusing chunksize with file format conversion
Assuming chunksize skips random rows
2. Which of the following is the correct way to read a CSV file in chunks of 1000 rows using pandas?
easy
A. pd.read_csv('file.csv', chunksize=1000)
B. pd.read_csv('file.csv', chunk=1000)
C. pd.read_csv('file.csv', size=1000)
D. pd.read_csv('file.csv', chunk_size=1000)
Solution
Step 1: Recall the correct parameter name
The correct parameter to read in chunks is chunksize, not chunk, size, or chunk_size.
Step 2: Verify the syntax
The syntax pd.read_csv('file.csv', chunksize=1000) correctly reads the file in chunks of 1000 rows.
Final Answer:
pd.read_csv('file.csv', chunksize=1000) -> Option A
Quick Check:
Correct parameter is chunksize [OK]
Hint: Use chunksize, not chunk or size [OK]
Common Mistakes:
Using chunk or chunk_size instead of chunksize
Confusing chunksize with size parameter
Missing quotes around filename
3. What will be the output type of the following code?
4. Identify the error in the following code snippet that reads a large CSV file in chunks and sums a column:
total = 0
for chunk in pd.read_csv('large.csv', chunksize=1000):
total += chunk['value']
print(total)
medium
A. The file path should be absolute
B. The chunksize parameter is missing
C. The variable total should be a list, not an integer
D. You cannot sum a column directly; use chunk['value'].sum()
Solution
Step 1: Analyze the summation operation
The code tries to add a pandas Series (chunk['value']) directly to an integer total, which causes an error.
Step 2: Correct the summation method
We should sum the values in the chunk column first using chunk['value'].sum() before adding to total.
Final Answer:
You cannot sum a column directly; use chunk['value'].sum() -> Option D
Quick Check:
Sum each chunk column before adding [OK]
Hint: Sum chunk column with .sum() before adding [OK]
Common Mistakes:
Adding Series directly to integer total
Forgetting chunksize parameter
Using list instead of integer for total
5. You want to calculate the average of the 'score' column from a very large CSV file without loading it all at once. Which approach using chunked reading is correct?
hard
A. Use chunksize but ignore chunk processing and calculate average on last chunk only
B. Read chunks, sum 'score' and count rows, then divide total sum by total count
C. Load entire file with pd.read_csv and then calculate average
D. Read only the first chunk and calculate average from it
Solution
Step 1: Understand the goal of chunked average calculation
To calculate average without loading all data, sum the 'score' column and count rows in each chunk.
Step 2: Combine sums and counts from all chunks
After processing all chunks, divide total sum by total count to get the overall average.
Final Answer:
Read chunks, sum 'score' and count rows, then divide total sum by total count -> Option B
Quick Check:
Sum and count chunks, then divide for average [OK]
Hint: Sum and count chunks, then divide for average [OK]
Common Mistakes:
Calculating average from only one chunk
Loading entire file defeats chunking purpose
Ignoring counts leads to wrong average
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.