0Pricing
Learn AI with Python · Lekcja

Efektywne przechowywanie zebranych danych

Zapisywanie do CSV/JSON/Parquet, bezpieczne dopisywanie, deduplikacja i przyrostowe gromadzenie.

Efektywne przechowywanie zebranych danych to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Od surowych odpowiedzi do zapisanych danych

Po zebraniu danych musisz je przechować, aby można było je ponownie wczytać, udostępnić i analizować. Właściwy format oraz kilka dobrych praktyk mają duży wpływ na szybkość i zużycie miejsca na dysku.

W tej lekcji omówiono formaty CSV i Parquet, dołączanie partii danych oraz usuwanie duplikatów.

JSON do DataFrame

Odpowiedzi interfejsów API to zwykle listy słowników. pd.DataFrame bezpośrednio przekształca je w tabelę gotową do zapisania.

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)

Zapisywanie do CSV za pomocą df.to_csv

CSV jest uniwersalny i czytelny dla człowieka. Zapisuj dane za pomocą to_csv; przekaż index=False, aby indeks wierszy nie został zapisany jako niepotrzebna kolumna.

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

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

Ograniczenia formatu CSV

CSV jest wygodny, ale ma w zastosowaniach związanych z AI pewne wady:

  • brak typów — wszystko jest przechowywane jako tekst, więc typy danych są ponownie zgadywane podczas wczytywania
  • duże pliki i brak kompresji domyślnie
  • powolny odczyt dużych zbiorów danych

W przypadku większych danych lub danych wielokrotnie wczytywanych lepszy jest Parquet.

Zapisywanie do Parquet za pomocą df.to_parquet

Parquet to kolumnowy format binarny. Zachowuje typy danych, dobrze się kompresuje i wczytuje się znacznie szybciej niż CSV.

Wymaga zainstalowania silnika, takiego jak pyarrow.

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

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

CSV a Parquet — kiedy używać którego formatu

Praktyczne zasady:

  • CSV: niewielkie dane, udostępnianie za pomocą narzędzi innych niż Python, szybki wgląd
  • Parquet: duże dane, wielokrotne wczytywanie, zachowanie typów, potoki analityczne

W przypadku zadań zbierających dane, które będą zasilać modele, preferuj Parquet.

Dołączanie nowych partii za pomocą pd.concat

Zbieranie danych często odbywa się partiami. Połącz istniejący obiekt DataFrame z nowym za pomocą pd.concat.

ignore_index=True ponownie numeruje indeks, dzięki czemu pozostaje on uporządkowany.

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

Bezpośrednie dołączanie danych do pliku CSV

Aby dołączyć dane do istniejącego pliku CSV bez wczytywania go, otwórz plik w trybie dołączania i pomiń nagłówek przy kolejnych zapisach.

import os

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

Dlaczego usuwać duplikaty

Wielokrotne uruchamianie zbierania danych, nakładające się strony lub ponowienia prób mogą tworzyć zduplikowane wiersze. Duplikaty zawyżają statystyki i mogą przenikać między zbiorami treningowym i testowym, pogarszając ocenę modelu.

Po połączeniu partii danych zawsze należy usunąć duplikaty.

drop_duplicates(subset=[id])

Należy użyć stabilnego, unikatowego klucza (często jest to id) wraz z drop_duplicates(subset=...). Usuwa to powtórzenia, nawet jeśli inne pola nieznacznie się zmieniły.

keep="last" zachowuje najnowszą wersję każdego identyfikatora.

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

Pomocnik do zapisywania i scalania

Należy połączyć wszystkie elementy: wczytać istniejący plik Parquet, jeśli jest dostępny, połączyć nową partię, usunąć duplikaty według identyfikatora i ponownie zapisać dane. Operację można bezpiecznie uruchamiać wielokrotnie.

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

Szybki test: wybór formatu

Wielokrotnie wczytywany jest duży zbiór danych do trenowania modelu, a typy danych muszą zostać zachowane przy szybkim odczycie.

Podsumowanie: wydajne przechowywanie danych

Można już prawidłowo zapisywać zebrane dane:

  • pd.DataFrame do przekształcania rekordów JSON w tabelę
  • to_csv(index=False) dla przenośnego tekstu oraz to_parquet dla szybkiego przechowywania danych wraz z typami
  • pd.concat(ignore_index=True) lub tryb dopisywania do pliku CSV dla partii danych
  • drop_duplicates(subset=["id"]) do zachowania unikatowości wierszy

Następnie: praca z rzeczywistymi publicznymi interfejsami API danych.

Często zadawane pytania

Czy lekcja „Efektywne przechowywanie zebranych danych” jest bezpłatna?

Tak — pełny tekst „Efektywne przechowywanie zebranych danych” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Co nauczysz się w „Efektywne przechowywanie zebranych danych”?

Zapisywanie do CSV/JSON/Parquet, bezpieczne dopisywanie, deduplikacja i przyrostowe gromadzenie. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?

Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Efektywne przechowywanie zebranych danych”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?

Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Podstawy REST API do gromadzenia danych
  2. Stronicowanie i gromadzenie dużych zbiorów danych
  3. Efektywne przechowywanie zebranych danych
  4. Praca z publicznymi interfejsami API danych
← Powrót do Learn AI with Python