Sdílet prostřednictvím


Kurz: Techniky EDA pomocí poznámkových bloků Databricks

Tento kurz vás provede základy provádění průzkumné analýzy dat (EDA) pomocí Pythonu v poznámkovém bloku Azure Databricks, od načítání dat až po generování přehledů prostřednictvím vizualizací dat.

Poznámkový blok použitý v tomto kurzu zkoumá data o globální energii a emisích a ukazuje, jak načíst, vyčistit a prozkoumat data.

Můžete postupovat podle příkladu poznámkového bloku nebo vytvořit vlastní poznámkový blok úplně od začátku.

Co je EDA?

Průzkumná analýza dat (EDA) je kritickým počátečním krokem procesu datových věd, který zahrnuje analýzu a vizualizaci dat pro:

  • Odkryjte své hlavní charakteristiky.
  • Identifikace vzorů a trendů
  • Detekce anomálií
  • Seznamte se s relacemi mezi proměnnými.

EDA poskytuje přehledy o datové sadě a usnadňuje informovaná rozhodnutí o dalších statistických analýzách nebo modelování.

S poznámkovými bloky Azure Databricks můžou datoví vědci provádět EDA pomocí známých nástrojů. V tomto kurzu se například používají některé běžné knihovny Pythonu ke zpracování a vykreslení dat, mezi které patří:

  • Numpy: základní knihovna pro numerické výpočty, která poskytuje podporu polí, matic a široké škály matematických funkcí pro práci s těmito datovými strukturami.
  • pandas: výkonná knihovna pro manipulaci s daty a analýzu založená na knihovně NumPy, která nabízí datové struktury, jako jsou datové rámce pro efektivní zpracování strukturovaných dat.
  • Plotly: interaktivní knihovna grafů, která umožňuje vytváření vysoce kvalitních interaktivních vizualizací pro analýzu a prezentaci dat.
  • Matplotlib: komplexní knihovna pro vytváření statických, animovaných a interaktivních vizualizací v Pythonu.

Azure Databricks také poskytuje integrované funkce, které vám pomůžou prozkoumat data ve výstupu poznámkového bloku, jako je filtrování a vyhledávání dat v tabulkách a přiblížení vizualizací. Pomocí Nástroje Databricks Assistant můžete také psát kód pro EDA.

Než začnete

K dokončení tohoto kurzu potřebujete následující:

  • Musíte mít oprávnění k používání existujícího výpočetního prostředku nebo k vytvoření nového výpočetního prostředku. Viz Výpočty.
  • [Volitelné] Tento kurz popisuje, jak pomocí pomocníka vygenerovat kód. Další informace najdete v tématu Použití nástroje Databricks Assistant .

Stažení datové sady a import souboru CSV

Tento kurz ukazuje techniky EDA zkoumáním globálních údajů o spotřebě energie a emisí. Abyste mohli postupovat, stáhněte si datovou sadu spotřeby energie od Our World in Data z Kaggle. Tento kurz používá owid-energy-data.csv soubor.

Import datové sady do pracovního prostoru Azure Databricks:

  1. Na bočním panelu pracovního prostoru klikněte na Pracovní prostor a přejděte do prohlížeče pracovního prostoru.

  2. Přetáhněte soubor owid-energy-data.csvCSV do pracovního prostoru.

    Tím se otevře modální režim importu . Poznamenejte si zde uvedenou cílovou složku . Toto nastavení je nastaveno na aktuální složku v prohlížeči pracovního prostoru a stane se cílem importovaného souboru.

  3. Klikněte na Importovat. Soubor by se měl zobrazit v cílové složce v pracovním prostoru.

  4. Pro pozdější načtení souboru do poznámkového bloku potřebujete cestu k souboru. Najděte soubor v prohlížeči pracovního prostoru. Chcete-li zkopírovat cestu k souboru do schránky, klikněte pravým tlačítkem myši na název souboru a pak vyberte Kopírovat adresu URL/cestu>Úplná cesta.

Vytvoření nového poznámkového bloku

Pokud chcete vytvořit nový poznámkový blok v domovské složce uživatele, New IconNew Iconklikněte na bočním panelu na a v nabídce vyberte Poznámkový blok.

Nahoře vedle názvu poznámkového bloku vyberte Python jako výchozí jazyk poznámkového bloku.

Další informace o vytváření a správě poznámkových bloků najdete v tématu Správa poznámkových bloků.

Přidejte všechny ukázky kódu v tomto článku do nové buňky v poznámkovém bloku. Nebo použijte ukázkový poznámkový blok poskytnutý k následování tohoto kurzu.

Načtení souboru CSV

Do nové buňky poznámkového bloku načtěte soubor CSV. Chcete-li to provést, importujte numpy a pandas. Jedná se o užitečné knihovny Pythonu pro datové vědy a analýzu.

Vytvořte datový rámec pandas z datové sady pro snadnější zpracování a vizualizaci. Nahraďte cestu k souboru cestou, kterou jste si dříve zkopírovali.

import numpy as np
import pandas as pd # Data processing, CSV file I/O (e.g. pd.read_csv)
df=pd.read_csv('/Workspace/Users/demo@databricks.com/owid-energy-data.csv') # Replace the file path here with the workspace path you copied earlier

Spusťte buňku. Výstup by měl vrátit datový rámec pandas, včetně seznamu jednotlivých sloupců a jeho typu.

Výstup buňky importovaného datového rámce.

Vysvětlení dat

Pochopení základů datové sady je zásadní pro každý projekt datových věd. Zahrnuje seznámení se strukturou, typy a kvalitou dat v ruce.

V poznámkovém bloku Azure Databricks můžete pomocí display(df) příkazu zobrazit datovou sadu.

Výstup buňky zobrazující datovou sadu jako tabulku

Vzhledem k tomu, že datová sada obsahuje více než 10 000 řádků, vrátí tento příkaz zkrácenou datovou sadu. Nalevo od každého sloupce uvidíte datový typ sloupce. Další informace najdete v tématu Formátování sloupců.

Použijte knihovnu pandas pro přehledy dat

Pokud chcete datovou sadu efektivně pochopit, použijte následující příkazy pandas:

  • Příkaz df.shape vrátí dimenze datového rámce a poskytuje rychlý přehled o počtu řádků a sloupců.

    Výstup buňky zobrazující formát df.shape

  • Příkaz df.dtypes poskytuje datové typy jednotlivých sloupců, které vám pomůžou porozumět druhu dat, se kterými pracujete. Můžete také zobrazit datový typ pro každý sloupec v tabulce výsledků.

    Výstup buňky zobrazující typy df.d

  • Příkaz df.describe() generuje popisné statistiky pro číselné sloupce, jako jsou střední hodnoty, směrodatná odchylka a percentily, které vám můžou pomoct identifikovat vzory, detekovat anomálie a pochopit rozdělení dat. display() Umožňuje zobrazit souhrnné statistiky v tabulkovém formátu, se kterým můžete pracovat. Viz Prozkoumání dat pomocí výstupní tabulky poznámkového bloku Databricks.

    Výstup buňky zobrazující formát df.describe

Vygenerování datového profilu

Poznámka:

K dispozici ve službě Databricks Runtime 9.1 LTS a novějších.

Poznámkové bloky Azure Databricks zahrnují integrované možnosti profilace dat. Při prohlížení datového rámce pomocí funkce zobrazení Azure Databricks můžete vygenerovat profil dat z výstupu tabulky.

# Display the DataFrame, then click "+ > Data Profile" to generate a data profile
display(df)

Kliknutím vygenerujete datový profil z výstupu tabulky.

Ve výstupu klikněte na +>Datový profil vedle tabulky . Tím se spustí nový příkaz, který vygeneruje profil dat v datovém rámci.

Vygenerovaný datový profil z výstupu tabulky.

Profil dat obsahuje souhrnné statistiky pro číselné sloupce, řetězce a kalendářní data a také histogramy rozdělení hodnot pro každý sloupec. Profily dat můžete také generovat programově; viz příkazu summarize (dbutils.data.summarize).

Vyčištění dat

Čištění dat je zásadním krokem v EDA, aby byla datová sada přesná, konzistentní a připravená k smysluplné analýze. Tento proces zahrnuje několik klíčových úloh, které zajistí, že jsou data připravená k analýze, včetně:

  • Identifikace a odebrání duplicitních dat
  • Zpracování chybějících hodnot, které můžou zahrnovat nahrazení konkrétní hodnotou nebo odebrání ovlivněných řádků.
  • Standardizace datových typů (například převod řetězců na datetime) prostřednictvím převodů a transformací, aby byla zajištěna konzistence. Můžete také chtít převést data do formátu, se kterým snadněji pracujete.

Tato fáze čištění je nezbytná, protože zlepšuje kvalitu a spolehlivost dat a umožňuje přesnější a přehlednější analýzu.

Tip: Pomoc s úlohami čištění dat pomocí nástroje Databricks Assistant

Pomocí Nástroje Databricks Assistant můžete vygenerovat kód. Vytvořte novou buňku kódu a klikněte na vygenerovaný odkaz nebo pomocí ikony asistenta v pravém horním rohu otevřete asistenta. Zadejte dotaz pro asistenta. Pomocník může buď generovat kód Pythonu nebo SQL, nebo vygenerovat textový popis. Pro různé výsledky klikněte na Znovu vygenerovat.

Zkuste například následující výzvy použít pomocníka, který vám pomůže vyčistit data:

  • Zkontrolujte, jestli df obsahuje nějaké duplicitní sloupce nebo řádky. Vytiskněte kopie duplicit. Potom odstraňte duplicity.
  • V jakém formátu jsou sloupce kalendářních dat? Změňte ji na hodnotu 'YYYY-MM-DD'.
  • Nepoužiju XXX sloupec. Odstraňte ho.

Viz Získání nápovědy k kódování od Databricks Assistantu.

Odebrání duplicitních dat

Zkontrolujte, jestli data neobsahují duplicitní řádky nebo sloupce. Pokud ano, odeberte je.

Návod

Pomocí asistenta můžete vygenerovat kód za vás.

Zkuste zadat výzvu: Zkontrolujte, jestli df obsahuje duplicitní sloupce nebo řádky. Vytiskněte kopie duplicit. Pak odstraňte duplicity." Pomocník může vygenerovat kód podobný ukázce níže.

# Check for duplicate rows
duplicate_rows = df.duplicated().sum()

# Check for duplicate columns
duplicate_columns = df.columns[df.columns.duplicated()].tolist()

# Print the duplicates
print("Duplicate rows count:", duplicate_rows)
print("Duplicate columns:", duplicate_columns)

# Drop duplicate rows
df = df.drop_duplicates()

# Drop duplicate columns
df = df.loc[:, ~df.columns.duplicated()]

V tomto případě datová sada neobsahuje žádná duplicitní data.

Zpracování hodnot null nebo chybějících hodnot

Běžným způsobem, jak zacházet s hodnotami NaN nebo Null, je nahradit je hodnotou 0 pro snadnější matematické zpracování.

df = df.fillna(0) # Replace all NaN (Not a Number) values with 0

Tím zajistíte, že všechna chybějící data v datovém rámci se nahradí hodnotou 0, což může být užitečné pro následné analýzy nebo zpracování dat, kdy chybějící hodnoty můžou způsobit problémy.

Přeformátovat data

Data jsou často formátována různými způsoby v různých datových sadách. Můžou mít formát kalendářních dat, řetězce nebo celá čísla.

Pro tuto analýzu zacházejte se sloupcem year jako s celým číslem. Jedním ze způsobů, jak to udělat, je následující kód:

# Ensure the 'year' column is converted to the correct data type (integer for year)
df['year'] = pd.to_datetime(df['year'], format='%Y', errors='coerce').dt.year

# Confirm the changes
df.year.dtype

To zajišťuje, že year sloupec obsahuje pouze celé číselné hodnoty roku, přičemž jakékoliv neplatné položky jsou převedeny na NaT (Není čas).

Prozkoumání dat pomocí výstupní tabulky poznámkového bloku Databricks

Azure Databricks poskytuje integrované funkce, které vám pomůžou prozkoumat data pomocí výstupní tabulky.

V nové buňce použijte display(df) pro zobrazení datové sady jako tabulky.

Prozkoumejte data pomocí výstupní tabulky poznámkového bloku Databricks.

Pomocí výstupní tabulky můžete zkoumat data několika způsoby:

Vyhledání konkrétního řetězce nebo hodnoty v datech

Klikněte na ikonu hledání v pravém horním rohu tabulky a zadejte hledání.

Ve výstupu tabulky vyhledejte hodnotu.

Filtrování pro konkrétní podmínky

Pomocí předdefinovaných filtrů tabulky můžete filtrovat sloupce podle konkrétních podmínek. Existuje několik způsobů, jak vytvořit filtr. Podívejte se na výsledky filtru.

Návod

Pomocí Nástroje Databricks Assistant můžete vytvářet filtry. Klikněte na ikonu filtru v pravém horním rohu tabulky. Zadejte podmínku filtru. Databricks Assistant automaticky vygeneruje filtr za vás.

Vyfiltrujte výstup tabulky pomocí Pomocníka.

Vytváření vizualizací pomocí datové sady

V horní části výstupní tabulky kliknutím na +>Vizualizace otevřete editor vizualizací.

Přidejte vizualizaci pomocí výstupu tabulky.

Vyberte typ vizualizace a sloupce, které chcete vizualizovat. Editor zobrazí náhled grafu na základě vaší konfigurace. Například následující obrázek ukazuje, jak přidat více spojnicových grafů, abyste viděli spotřebu různých obnovitelných zdrojů energie v průběhu času.

Nakonfigurujte vizualizaci pomocí editoru vizualizací.

Kliknutím na Uložit přidáte vizualizaci jako kartu ve výstupu buňky.

Viz Vytvoření nové vizualizace.

Prozkoumání a vizualizace dat pomocí knihoven Pythonu

Zkoumání dat pomocí vizualizací je základním aspektem EDA. Vizualizace pomáhají odhalit vzory, trendy a vztahy v datech, která nemusí být okamžitě zjevná prostřednictvím číselné analýzy. Knihovny jako Plotly nebo Matplotlib můžete použít pro běžné techniky vizualizace, včetně bodových grafů, pruhových grafů, spojnicových grafů a histogramů. Tyto vizuální nástroje umožňují datovým vědcům identifikovat anomálie, porozumět distribucím dat a sledovat korelace mezi proměnnými. Například bodové grafy můžou zvýrazňovat odlehlé hodnoty, zatímco grafy časových řad můžou odhalit trendy a sezónnost.

Vytvořte pole pro jedinečné země

Prozkoumejte země zahrnuté v datové sadě vytvořením pole pro jedinečné země. Při vytváření pole se zobrazí entity uvedené jako country.

# Get the unique countries
unique_countries = df['country'].unique()
unique_countries

Výstup:

Výstup buňky zobrazující pole jedinečných zemí

Vhled:

Sloupec country obsahuje různé entity, včetně zemí s vysokým příjmem, Asie a Spojených států, které nejsou vždy přímo srovnatelné. Může být užitečnější filtrovat data podle oblastí.

Řekněme, že chcete zaměřit šetření na 10 zemí s nejvyššími emisemi skleníkových plynů v roce 2000. Data můžete filtrovat po dobu let, na které se chcete podívat, a na prvních 10 zemí s největšími emisemi a pak pomocí vykreslení vytvořit spojnicový graf zobrazující jejich emise v průběhu času.

import plotly.express as px

# Filter data to include only years from 2000 to 2022
filtered_data = df[(df['year'] >= 2000) & (df['year'] <= 2022)]

# Get the top 10 countries with the highest emissions in the filtered data
top_countries = filtered_data.groupby('country')['greenhouse_gas_emissions'].sum().nlargest(10).index

# Filter the data for those top countries
top_countries_data = filtered_data[filtered_data['country'].isin(top_countries)]

# Plot emissions trends over time for these countries
fig = px.line(top_countries_data, x='year', y='greenhouse_gas_emissions', color='country',
             title="Greenhouse Gas Emissions Trends for Top 10 Countries (2000 - 2022)")
fig.show()

Výstup:

Graf znázorňující trendy emisí skleníkových plynů pro prvních 10 emitorů z roku 2000 až 2022

Vhled:

Emise skleníkových plynů stoupaly v období 2000–2022, s výjimkou některých zemí, kde byly emise relativně stabilní s mírným poklesem v tomto období.

Filtrování a graf emisí podle oblastí

Vyfiltrujte data podle oblastí a vypočítejte celkové emise pro každou oblast. Pak vykreslíte data jako pruhový graf:

# Filter out regional entities
regions = ['Africa', 'Asia', 'Europe', 'North America', 'South America', 'Oceania']

# Calculate total emissions for each region
regional_emissions = df[df['country'].isin(regions)].groupby('country')['greenhouse_gas_emissions'].sum()

# Plot the comparison
fig = px.bar(regional_emissions, title="Greenhouse Gas Emissions by Region")
fig.show()

Výstup:

Graf znázorňující emise skleníkových plynů podle oblastí

Přehled:

Asie má nejvyšší emise skleníkových plynů. Oceánie, Jižní Amerika a Afrika produkují nejnižší emise skleníkových plynů.

Výpočet a graf růstu podílu obnovitelných zdrojů energie

Vytvořte novou funkci nebo sloupec, který vypočítá podíl obnovitelných zdrojů energie jako poměr spotřeby energie z obnovitelných zdrojů oproti primární spotřebě energie. Pak seřadí země na základě průměrného podílu obnovitelných zdrojů energie. Pro prvních 10 zemí vykreslujte svůj podíl na obnovitelných zdrojích energie v průběhu času:

# Calculate the renewable energy share and save it as a new column called "renewable_share"
df['renewable_share'] = df['renewables_consumption'] / df['primary_energy_consumption']

# Rank countries by their average renewable energy share
renewable_ranking = df.groupby('country')['renewable_share'].mean().sort_values(ascending=False)

# Filter for countries leading in renewable energy share
leading_renewable_countries = renewable_ranking.head(10).index
leading_renewable_data = df[df['country'].isin(leading_renewable_countries)]
# filtered_data = df[(df['year'] >= 2000) & (df['year'] <= 2022)]
leading_renewable_data_filter=leading_renewable_data[(leading_renewable_data['year'] >= 2000) & (leading_renewable_data['year'] <= 2022)]
# Plot renewable share over time for top renewable countries
fig = px.line(leading_renewable_data_filter, x='year', y='renewable_share', color='country',
             title="Renewable Energy Share Growth Over Time for Leading Countries")
fig.show()

Výstup:

Graf znázorňující růst podílu obnovitelných zdrojů energie v průběhu času pro 10 zemí, které vedou v oblasti obnovitelných zdrojů energie

Vhled:

Norsko a Island vedou svět v oblasti obnovitelných zdrojů energie, přičemž více než polovina jejich spotřeby pochází z obnovitelných zdrojů energie.

Island a Švédsko viděly největší růst jejich podílu na obnovitelných zdrojích energie. Všechny země viděly občasné poklesy a nárůsty, což demonstruje, jak růst obnovitelných zdrojů energie není nutně lineární. Zajímavě, Střední Afrika viděla pokles na začátku roku 2010, ale skočila zpět v roce 2020.

Bodový graf: Zobrazit dopad obnovitelných zdrojů energie pro největší znečišťovatele

Vyfiltrujte data pro prvních 10 emitorů a pak pomocí bodového grafu prohlédněte podíl obnovitelné energie vs. emise skleníkových plynů v průběhu času.

# Select top emitters and calculate renewable share vs. emissions
top_emitters = df.groupby('country')['greenhouse_gas_emissions'].sum().nlargest(10).index
top_emitters_data = df[df['country'].isin(top_emitters)]

# Plot renewable share vs. greenhouse gas emissions over time
fig = px.scatter(top_emitters_data, x='renewable_share', y='greenhouse_gas_emissions',
                color='country', title="Impact of Renewable Energy on Emissions for Top Emitters")
fig.show()

Výstup:

Graf znázorňující dopad obnovitelných zdrojů energie na emise hlavních emitorů

Vhled:

Vzhledem k tomu, že země využívá více energie z obnovitelných zdrojů, má také více emisí skleníkových plynů, což znamená, že celková spotřeba energie roste rychleji než jeho obnovitelná spotřeba. Severní Amerika je výjimkou v tom, že emise skleníkových plynů zůstaly v průběhu let relativně konstantní, protože jeho obnovitelný podíl pokračoval ve zvyšování.

Model předpokládané globální spotřeby energie

Agregujte globální primární spotřebu energie podle roku a pak vytvořte model automatického integrovaného klouzavého průměru (ARIMA) pro projekt celkové globální spotřeby energie za několik příštích let. Vykreslujte historickou a prognózovanou spotřebu energie pomocí knihovny Matplotlib.

import pandas as pd
from statsmodels.tsa.arima.model import ARIMA
import matplotlib.pyplot as plt

# Aggregate global primary energy consumption by year
global_energy = df[df['country'] == 'World'].groupby('year')['primary_energy_consumption'].sum()

# Build an ARIMA model for projection
model = ARIMA(global_energy, order=(1, 1, 1))
model_fit = model.fit()
forecast = model_fit.forecast(steps=10)  # Projecting for 10 years

# Plot historical and forecasted energy consumption
plt.plot(global_energy, label='Historical')
plt.plot(range(global_energy.index[-1] + 1, global_energy.index[-1] + 11), forecast, label='Forecast')
plt.xlabel("Year")
plt.ylabel("Primary Energy Consumption")
plt.title("Projected Global Energy Consumption")
plt.legend()
plt.show()

Výstup:

Graf zobrazující historickou a projektovanou globální spotřebu energie

Vhled:

Tento model předpovídá, že globální spotřeba energie bude nadále růst.

Ukázkový poznámkový blok

Pomocí následujícího poznámkového bloku proveďte kroky v tomto článku. Pokyny k importu poznámkového bloku do pracovního prostoru Azure Databricks najdete v tématu Import poznámkového bloku.

Kurz: EDA s globálními daty o spotřebě energie

Získej poznámkový blok

Další kroky

Teď, když jste u datové sady provedli počáteční průzkumnou analýzu dat, vyzkoušejte následující kroky:

  • Další příklady vizualizace EDA najdete v dodatku v ukázkovém poznámkovém bloku .
  • Pokud jste při procházení tohoto kurzu narazili na nějaké chyby, zkuste pomocí integrovaného ladicího programu procházet kód. Podívejte se na Ladicí poznámkové bloky.
  • Sdílejte poznámkový blok se svým týmem, aby mohl porozumět vaší analýze. V závislosti na tom, jaká oprávnění jim udělíte, můžou pomoct s vývojem kódu pro další analýzu nebo přidáním komentářů a návrhů k dalšímu šetření.
  • Po dokončení analýzy vytvořte řídicí panel poznámkového bloku nebo řídicí panel AI/BI s klíčovými vizualizacemi, které chcete sdílet se zúčastněnými stranami.