Lær AI med Python · Lektion

Effektiv lagring af indsamlede data

Gemning i CSV/JSON/Parquet, sikker tilføjelse, deduplikering og inkrementel indsamling.

Lektion 3 af 413 trin

Effektiv lagring af indsamlede data er en gratis Lær AI med Python-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Lær AI med Python, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Lær AI med Python-kurset indeholder 4 lektioner i alt.

Fra rå svar til gemte data

Efter indsamling af data skal du gemme dem, så de kan indlæses igen, deles og analyseres. Det rigtige format og nogle få gode vaner gør en stor forskel for hastighed og diskforbrug.

Denne lektion gennemgår CSV, Parquet, tilføjelse af batcher og fjernelse af dubletter.

JSON til DataFrame

Svar fra API'er er normalt lister af ordbøger. pd.DataFrame omdanner dem direkte til en tabel, der er klar til lagring.

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)

Lagring i CSV med df.to_csv

CSV er universelt og let at læse for mennesker. Gem med to_csv, og angiv index=False, så rækkeindekset ikke skrives som en utilsigtet kolonne.

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

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

Begrænsninger ved CSV

CSV er praktisk, men har ulemper i AI-arbejde:

  • Ingen datatyper — alt gemmes som tekst, så dtypes skal bestemmes igen ved indlæsning
  • Store filer uden komprimering som standard
  • Langsom indlæsning af store datasæt

Til større data eller data, der indlæses gentagne gange, er Parquet bedre.

Lagring i Parquet med df.to_parquet

Parquet er et kolonnebaseret binært format. Det bevarer datatyper, kan komprimeres effektivt og indlæses langt hurtigere end CSV.

Det kræver en motor som pyarrow, der skal være installeret.

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

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

CSV kontra Parquet — Hvornår skal du bruge hvad

Tommelfingerregler:

  • CSV: små datamængder, deling med værktøjer uden for Python og hurtig inspektion
  • Parquet: store datamængder, gentagne indlæsninger, bevarede datatyper og analyseforløb

Til indsamlingsjob, der leverer data til modeller, bør du foretrække Parquet.

Tilføjelse af nye batcher med pd.concat

Indsamling foregår ofte i batcher. Kombinér en eksisterende DataFrame med en ny ved hjælp af pd.concat.

ignore_index=True nummererer indekset igen, så det forbliver ryddeligt.

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

Tilføjelse direkte til en CSV-fil

Hvis du vil føje data til en eksisterende CSV uden at indlæse den, skal du åbne filen i tilføjelsestilstand og springe kolonneoverskriften over ved senere skrivninger.

import os

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

Hvorfor fjerne dubletter

Hvis du indlæser en samling igen, har overlappende sider eller prøver igen efter en fejl, kan det skabe dublerede rækker. Dubletter oppuster optællinger og kan lække mellem trænings- og testopdelinger, hvilket forringer modelevalueringen.

Fjern altid dubletter efter sammenlægning af batches.

drop_duplicates(subset=[id])

Brug en stabil, entydig nøgle (ofte id) sammen med drop_duplicates(subset=...). Det fjerner gentagelser, selv hvis andre felter er ændret en smule.

keep="last" beholder den seneste version af hvert id.

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

En hjælpefunktion til at gemme og flette

Saml delene: indlæs eksisterende Parquet, hvis filen findes, sammenkæd det nye batch, fjern dubletter efter id, og gem resultatet igen. Funktionen er sikker at køre gentagne gange.

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

Hurtigt tjek: Valg af format

Du indlæser gentagne gange et stort datasæt til modeltræning og har brug for, at datatyperne bevares, samtidig med at læsningen er hurtig.

Opsamling: Effektiv lagring af data

Du kan nu gemme indsamlede data effektivt:

  • pd.DataFrame til at omdanne JSON-poster til en tabel
  • to_csv(index=False) til portabel tekst og to_parquet til hurtig lagring med bevarede datatyper
  • pd.concat(ignore_index=True) eller CSV-tilføjelsestilstand til batches
  • drop_duplicates(subset=["id"]) til at holde rækkerne entydige

Næste trin: arbejde med rigtige offentlige data-API'er.

Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
53
Lektioner
225

Ofte stillede spørgsmål

Er lektionen “Effektiv lagring af indsamlede data” gratis?

Ja — alle 3 lektioner i læringssporet Lær AI med Python, inklusive “Effektiv lagring af indsamlede data”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Lær AI med Python-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Effektiv lagring af indsamlede data”?

Gemning i CSV/JSON/Parquet, sikker tilføjelse, deduplikering og inkrementel indsamling. Du øver dig i Lær AI med Python med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Lær AI med Python?

Der kræves ingen tidligere erfaring. Lær AI med Python på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Effektiv lagring af indsamlede data”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Lær AI med Python-lektion?

Ja. Alle Lær AI med Python-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Grundlæggende REST-API'er til dataindsamling
  2. Sideinddeling og indsamling af store datasæt
  3. Effektiv lagring af indsamlede data
  4. Arbejde med offentlige data-API'er
← Tilbage til Lær AI med Python