Effektiv lagring af indsamlede data
Gemning i CSV/JSON/Parquet, sikker tilføjelse, deduplikering og inkrementel indsamling.
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-guessingCSV 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_dfHurtigt 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.DataFrametil at omdanne JSON-poster til en tabelto_csv(index=False)til portabel tekst ogto_parquettil hurtig lagring med bevarede datatyperpd.concat(ignore_index=True)eller CSV-tilføjelsestilstand til batchesdrop_duplicates(subset=["id"])til at holde rækkerne entydige
Næste trin: arbejde med rigtige offentlige data-API'er.
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
- Grundlæggende REST-API'er til dataindsamling
- Sideinddeling og indsamling af store datasæt
- Effektiv lagring af indsamlede data
- Arbejde med offentlige data-API'er