Představte si, že pracujete s masivní datovou sadou pomocí Pand, nadšeni, že odemknete cenné poznatky a učiníte rozhodnutí založená na datech. Když se však ponoříte do analýzy, narazíte na překážku — využití paměti. Čím větší je datová sada, tím pomalejší jsou vaše operace transformace dat, což brání vašemu pokroku a zanechává vás poškrábání hlavy.
Použitím jednoduchých osvědčených postupů uvedených v tomto článku můžete optimalizovat spotřebu paměti a zlepšit výkon transformací dat. Pojďme se tedy ponořit a zjistit, jak efektivně spravovat využití paměti v pandách, což vám umožní bezproblémově pracovat s velkými datovými sadami a dosáhnout rychlejšího zpracování dat.
Pojďme se do toho ponořit přímo!
Nejprve si pro ilustraci postavme fiktivní datový rámec obsahující data představující 1 000 000 vymyšlených fotbalistů:
import pandas as pd
import numpy as npdef create_df(n):
df = pd.DataFrame()
df['position'] = np.random.choice(['GK', 'DEF', 'MID', 'ST'], size=n)
df['height'] = np.round(np.random.normal(loc=180, scale=5, size=n))
df['is_captain'] = np.random.choice(['YES', 'NO'], size=n)
df['scoring_probability'] = np.random.uniform(low=0, high=1, size=n)
df['minutes_played_last_season'] = np.random.randint(low=-3000, high=3000, size=n)
return df
df = create_df(1000000)
df.head()
Tato zjednodušená datová sada, kterou jsme vytvořili, obsahuje 5 sloupců:
- hodnota: kategorická proměnná se 4 možnými hodnotami
- výška: normálně distribuovaná proměnná kolem 1,80 m
- is_captain: jednoduchý atribut ” ano “nebo ” ne”
- scoring_probability: rovnoměrně rozložená proměnná mezi 0 a 1
- minutes_played_last_season: náhodné celé číslo mezi 0 a 3000
Takhle to vypadá:
A kolik paměti používá:
df.info()
Podívejme se, jak níže uvedené osvědčené postupy situaci zlepšují.