chunk_size = 100_000 results = [] for chunk in pd.read_csv('large_sales_data.csv', chunksize=chunk_size): chunk['discounted_price'] = chunk['sales'] * (1 - chunk['discount']) results.append(chunk.groupby('region')['discounted_price'].sum()) final_result = pd.concat(results).groupby(level=0).sum() print(final_result)