TuBrief
구독 채널
비디오
커뮤니티

Что делать, если анализ данных прерывается из-за нехватки памяти в Pandas

TuBrief 편집팀
2026년 7월 13일
0
Computing/Software

원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.

Русский한국어EnglishEspañol中文العربيةDeutschFrançaisPortuguêsहिन्दीBahasa Indonesia日本語

관련 영상

DuckDB становится неудержимым...6:04

DuckDB становится неудержимым...

Better Stack

커뮤니티의 다른 글

사내 시스템에 llm api 붙일 때 마주하는 현실적인 한계와 대응법

2026년 9월 13일

레거시 백엔드에 GPT-6 Astra 붙일 때 예산 승인과 보안 통과를 먼저 끝내는 법이 있습니다

2026년 9월 13일

에이전트끼리 대화하다 6천만 원 청구서가 나오는 이유

2026년 9월 13일

사내 RAG 벡터 검색에 Okta 권한 필터를 직접 거는 방법

2026년 9월 13일

브라우저 에이전트에게 내 구글 계정을 통째로 넘기면 안 되는 이유

2026년 9월 12일

Apple Won the AI Race

2026년 9월 12일

댓글 (0)

Log in to leave a comment

아직 작성된 글이 없습니다

© 2026 . All rights reserved.

TuBrief
구독 채널
비디오
커뮤니티
로그인

Что делать, если анализ данных прерывается из-за нехватки памяти в Pandas

Не загружайте все данные в оперативную память

Pandas загружает данные в оперативную память целиком. Именно поэтому Python «умирает», если вы пытаетесь открыть CSV-файл размером 20 ГБ на ноутбуке с 16 ГБ ОЗУ. Даже при небольшом увеличении объема данных ноутбук зависает, а ядро Jupyter Notebook завершается с ошибкой. Вы не можете постоянно делать выборку данных или покупать новый компьютер.

Вместо этого используйте DuckDB. Эта библиотека считывает только те данные, которые необходимы в данный момент. Она не загружает весь набор данных в память, а обрабатывает только нужные фрагменты с помощью синтаксиса SQL. Есть причина, по которой дата-инженеры все чаще выбирают её в качестве альтернативы Pandas.

Переход на 3 этапа использования кода Pandas

Изменение среды анализа данных проще, чем кажется. Оставьте существующие DataFrame-структуры Pandas на своих местах, заменив только движок.

  1. Подготовка данных: вместо чтения файла через Pandas укажите DuckDB путь к нужному файлу.
  2. Выполнение запроса: с помощью функции duckdb.sql() пропишите необходимые условия и агрегации. Фактические вычисления на этом этапе еще не происходят.
  3. Извлечение результата: реальные вычисления запускаются только в момент вызова .df() в самом конце.

Этот подход обеспечивает эффективность, выходящую далеко за рамки простого изменения кода. Операции, которые приводили к переполнению памяти при использовании groupby в Pandas, в DuckDB стабильно выполняются с использованием дискового пространства.

Предотвращение остановки анализа с помощью лимита в 4 ГБ

При работе с большими данными часто случаются ситуации, когда память заканчивается и программа завершается. Чтобы этого избежать, установите «ограждения» в рабочей среде.

Добавьте следующий код в начало скрипта:

`python
import duckdb
con = duckdb.connect()
con.execute("SET memory_limit = '4GB'")
con.execute("SET temp_directory = './tmp'")

`

memory_limit — это лимит, определяющий, сколько оперативной памяти может использовать DuckDB. Если установить его на 4 ГБ, то даже на ноутбуке с 16 ГБ ОЗУ система не будет зависать. Если оперативной памяти недостаточно, DuckDB автоматически записывает данные во временные файлы на диске. Согласно тестам 2023 года, при обработке Parquet-файла размером 140 ГБ DuckDB потребовалось всего 1,3 ГБ ОЗУ для завершения задачи. В случае с Pandas этот процесс занял бы десятки гигабайт памяти и, скорее всего, завершился бы сбоем.

Работа с ошибочными данными

Самый раздражающий момент в анализе данных — когда процесс останавливается из-за некорректного формата. Если типы данных в CSV-файле не соответствуют ожидаемым, анализ даже не начнется.

При использовании функции read_csv активируйте следующие опции:

`python
con.execute("""
SELECT * FROM read_csv('data.csv',
columns={'id': 'INTEGER', 'value': 'DOUBLE'},
store_rejects=true,
strict_mode=false)
""")

`

Благодаря этому весь процесс не прервется из-за несоответствия формата. Ошибочные строки будут изолированы в отдельной таблице. Позже вы сможете просмотреть таблицу reject_errors и выяснить, почему данные оказались повреждены.

Анализ — это не исправление инструментов. Это работа по извлечению инсайтов из данных. Перестаньте десятки раз перезапускать код из-за нехватки памяти, сначала обеспечьте эффективность обработки, заменив движок.