Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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:
Na bočním panelu pracovního prostoru klikněte na Pracovní prostor a přejděte do prohlížeče pracovního prostoru.
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.
Klikněte na Importovat. Soubor by se měl zobrazit v cílové složce v pracovním prostoru.
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 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.
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.
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.shapevrátí dimenze datového rámce a poskytuje rychlý přehled o počtu řádků a sloupců.
Příkaz
df.dtypesposkytuje 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ů.
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.
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)
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.
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
dfobsahuje 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
XXXsloupec. 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.
Pomocí výstupní tabulky můžete zkoumat data několika způsoby:
- Vyhledání konkrétního řetězce nebo hodnoty v datech
- Filtrování pro konkrétní podmínky
- Vytváření vizualizací pomocí datové sady
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í.
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.
Vytváření vizualizací pomocí datové sady
V horní části výstupní tabulky kliknutím na +>Vizualizace otevřete editor vizualizací.
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.
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ě
- Graf trendů emisí pro prvních 10 emitorů (200–2022)
- Filtrování a graf emisí podle oblastí
- Výpočet a graf růstu podílu obnovitelných zdrojů energie
- Bodový graf: Zobrazení dopadu energie z obnovitelných zdrojů pro největší znečišťovatele
- Model předpokládané globální spotřeby energie
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:
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í.
Graf trendů emisí pro prvních 10 emitorů (200–2022)
Ř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:
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:
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:
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:
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:
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
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.