0Pricing
Learn AI with Python · Урок

Эффективное хранение собранных данных

Сохранение в CSV/JSON/Parquet, безопасное добавление, удаление дубликатов и инкрементальный сбор.

«Эффективное хранение собранных данных» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.

От необработанных ответов к сохранённым данным

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

В этом уроке рассматриваются CSV, Parquet, добавление пакетов и удаление дубликатов.

Преобразование JSON в DataFrame

Ответы интерфейсов обычно представляют собой списки словарей. pd.DataFrame напрямую преобразует их в таблицу, готовую к сохранению.

import pandas as pd

records = [
    {"id": 1, "name": "A", "score": 9.5},
    {"id": 2, "name": "B", "score": 8.0},
]
df = pd.DataFrame(records)
print(df)

Сохранение в CSV с помощью df.to_csv

CSV универсален и удобен для чтения человеком. Сохраняйте данные с помощью to_csv; передавайте index=False, чтобы индекс строк не записывался как лишний столбец.

df.to_csv("data.csv", index=False)

# Reload
df2 = pd.read_csv("data.csv")

Ограничения CSV

CSV удобен, но имеет недостатки при работе с ИИ:

  • Нет типов — всё хранится как текст, поэтому при загрузке типы данных определяются заново
  • Большие файлы без сжатия по умолчанию
  • Медленное чтение больших наборов данных

Для больших данных или данных, которые загружаются многократно, лучше подходит Parquet.

Сохранение в Parquet с помощью df.to_parquet

Parquet — это столбцовый двоичный формат. Он сохраняет типы данных, хорошо сжимается и загружается значительно быстрее CSV.

Для него требуется установленный движок, например pyarrow.

df.to_parquet("data.parquet", index=False)

df2 = pd.read_parquet("data.parquet")
print(df2.dtypes)   # types preserved, no re-guessing

CSV и Parquet — когда какой формат использовать

Общие рекомендации:

  • CSV: небольшие данные, обмен с инструментами не на Python, быстрый просмотр
  • Parquet: большие данные, многократная загрузка, сохранение типов, аналитические конвейеры

Для заданий по сбору данных, передающих данные моделям, предпочитайте Parquet.

Добавление новых пакетов с помощью pd.concat

Сбор данных часто выполняется пакетами. Объединяйте существующий DataFrame с новым с помощью pd.concat.

ignore_index=True перенумеровывает индекс, сохраняя его аккуратным.

new_batch = pd.DataFrame(new_records)
df = pd.concat([df, new_batch], ignore_index=True)
print(len(df))

Добавление данных непосредственно в файл CSV

Чтобы добавить данные в существующий CSV, не загружая его, откройте файл в режиме добавления и при последующих записях пропускайте заголовок.

import os

header = not os.path.exists("data.csv")
new_batch.to_csv("data.csv", mode="a", header=header, index=False)

Зачем удалять дубликаты

Повторный сбор данных, перекрывающиеся страницы или повторные попытки могут создавать дублирующиеся строки. Дубликаты завышают подсчёты и могут попадать одновременно в обучающую и проверочную выборки, ухудшая оценку модели.

Всегда удаляйте дубликаты после объединения пакетов данных.

drop_duplicates(subset=[id])

Используйте стабильный уникальный ключ (часто это id) вместе с drop_duplicates(subset=...). Это удаляет повторы, даже если другие поля немного изменились.

keep="last" сохраняет самую последнюю версию каждой записи с указанным id.

df = df.drop_duplicates(subset=["id"], keep="last").reset_index(drop=True)
print(len(df), "unique rows")

Помощник для сохранения и объединения

Объедините все части: загрузите существующий файл Parquet, если он есть, объедините его с новым пакетом данных, удалите дубликаты по id и сохраните результат обратно. Операцию можно безопасно выполнять многократно.

import os
import pandas as pd

def save_merge(new_df, path="data.parquet", key="id"):
    if os.path.exists(path):
        old = pd.read_parquet(path)
        new_df = pd.concat([old, new_df], ignore_index=True)
    new_df = new_df.drop_duplicates(subset=[key], keep="last")
    new_df.to_parquet(path, index=False)
    return new_df

Быстрая проверка: выбор формата

Вам нужно многократно загружать большой набор данных для обучения модели, сохраняя типы данных и обеспечивая быструю загрузку.

Итоги: эффективное хранение данных

Теперь Вы умеете правильно сохранять собранные данные:

  • pd.DataFrame для преобразования записей JSON в таблицу
  • to_csv(index=False) для переносимого текстового формата и to_parquet для быстрого хранения с типами данных
  • pd.concat(ignore_index=True) или режим добавления в CSV для обработки пакетов данных
  • drop_duplicates(subset=["id"]) для сохранения уникальности строк

Далее: работа с реальными общедоступными API данных.

Часто задаваемые вопросы

Урок «Эффективное хранение собранных данных» бесплатный?

Да — полный текст урока «Эффективное хранение собранных данных» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.

Чему я научусь в уроке «Эффективное хранение собранных данных»?

Сохранение в CSV/JSON/Parquet, безопасное добавление, удаление дубликатов и инкрементальный сбор. Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Learn AI with Python?

Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Эффективное хранение собранных данных»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Learn AI with Python?

Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы REST API для сбора данных
  2. Постраничная загрузка и сбор больших наборов данных
  3. Эффективное хранение собранных данных
  4. Работа с общедоступными API данных
← Назад к Learn AI with Python