#BigData
📝 Как обрабатывать большие данные в Pandas, если они не помещаются в память
Представьте: у вас есть файл с 260 миллионами транзакций, но на компьютере всего 8 ГБ оперативной памяти. Если попробовать загрузить всё сразу — Python просто «упадёт». Что делать?
🔹 Решение: обрабатываем данные по частям
Вместо того чтобы грузить весь файл разом, будем читать его порциями, например по 1 млн строк за раз. В Pandas это делается так:
🔹 Какие задачи можно решать?
1. Сколько всего транзакций? → Считаем строки в каждом куске и суммируем.
2. Сколько потратили за каждый год? → В каждом куске группируем по году и суммируем, потом складываем результаты.
3. Средние траты на развлечения по месяцам? → Фильтруем данные за 2020 год, оставляем только категорию «Развлечения», группируем по месяцам и считаем среднее.
🔹 Почему это работает?
- Не нагружает оперативную память — обрабатывается только небольшая часть данных за раз.
- Можно делать сложные расчёты — главное аккуратно собирать промежуточные результаты.
🔹 Как ускорить?
- Использовать `dtypes` — указать типы данных для экономии памяти.
- Фильтровать данные сразу при чтении — если нужен только 2020 год, не загружайте остальное.
- Параллельная обработка — если компьютер многопроцессорный.
🎙 Новости
📝 База вопросов
Представьте: у вас есть файл с 260 миллионами транзакций, но на компьютере всего 8 ГБ оперативной памяти. Если попробовать загрузить всё сразу — Python просто «упадёт». Что делать?
Вместо того чтобы грузить весь файл разом, будем читать его порциями, например по 1 млн строк за раз. В Pandas это делается так:
import pandas as pd
# Загружаем данные по кускам
chunk_size = 1_000_000 # По 1 млн строк за раз
total_transactions = 0
for chunk in pd.read_csv('transactions.csv', chunksize=chunk_size):
# Обрабатываем каждую порцию данных
total_transactions += len(chunk)
print(f"Всего транзакций: {total_transactions:,}")
1. Сколько всего транзакций? → Считаем строки в каждом куске и суммируем.
2. Сколько потратили за каждый год? → В каждом куске группируем по году и суммируем, потом складываем результаты.
3. Средние траты на развлечения по месяцам? → Фильтруем данные за 2020 год, оставляем только категорию «Развлечения», группируем по месяцам и считаем среднее.
- Не нагружает оперативную память — обрабатывается только небольшая часть данных за раз.
- Можно делать сложные расчёты — главное аккуратно собирать промежуточные результаты.
- Использовать `dtypes` — указать типы данных для экономии памяти.
- Фильтровать данные сразу при чтении — если нужен только 2020 год, не загружайте остальное.
- Параллельная обработка — если компьютер многопроцессорный.
Please open Telegram to view this post
VIEW IN TELEGRAM