Python Pandas je klíčový nástroj pro zpracování a analýzu dat, nabízející bohatou sadu funkcí pro manipulaci s datovými strukturami. Běžnou operací je aktualizace řádků a sloupců, kterou lze provést různými způsoby. Tento článek se zaměří na různé techniky pro úpravu dat v rámci Pandas s praktickými ukázkami.
Modifikace řádků
Využití metody .loc
Metoda .loc
umožňuje přesný výběr a modifikaci řádků na základě jejich indexových štítků. Její syntaxe vypadá následovně:
python
df.loc[označení_indexů, označení_sloupců] = nové_hodnoty
Význam:
označení_indexů
specifikuje indexy řádků, které mají být změněny.označení_sloupců
definuje sloupce pro úpravu.nové_hodnoty
reprezentují nové hodnoty, které se přiřadí do vybraných pozic.
Příklad použití:
python
import pandas as pd
# Vytvoření datového rámce
df = pd.DataFrame({
„Jméno“: [„Petr“, „Jana“, „Karel“],
„Věk“: [25, 30, 35]
})
# Úprava věku v řádku s indexem 1
df.loc[1, „Věk“] = 32
print(df)
Výsledný výstup:
Jméno Věk
0 Petr 25
1 Jana 32
2 Karel 35
Použití metody .iloc
Metoda .iloc
se používá pro úpravu řádků na základě jejich číselných pozic. Její struktura je:
python
df.iloc[pozice_řádků, pozice_sloupců] = nové_hodnoty
Kde:
pozice_řádků
udává číselné pozice řádků pro úpravu.pozice_sloupců
udává číselné pozice sloupců pro úpravu.nové_hodnoty
jsou nové hodnoty pro vybrané buňky.
Příklad:
python
# Úprava věku v řádku na pozici 1
df.iloc[1, 1] = 34
print(df)
Výstup:
Jméno Věk
0 Petr 25
1 Jana 34
2 Karel 35
Úprava sloupců
Využití .assign()
pro změny sloupců
Metoda .assign()
umožňuje přidávat nové sloupce nebo modifikovat stávající. Její syntaxe je:
python
df = df.assign(název_nového_sloupce=nové_hodnoty)
V tomto kódu:
název_nového_sloupce
je jméno nového sloupce nebo existujícího, který chceme měnit.nové_hodnoty
jsou hodnoty, které se přiřadí do nového nebo existujícího sloupce.
Příklad:
python
# Přidání sloupce „Pohlaví“
df = df.assign(Pohlaví=[„Muž“, „Žena“, „Muž“])
print(df)
Výsledný datový rámec:
Jméno Věk Pohlaví
0 Petr 25 Muž
1 Jana 34 Žena
2 Karel 35 Muž
Změna názvů sloupců pomocí .rename()
Metoda .rename()
se používá k přejmenování sloupců. Její formát je:
python
df = df.rename(columns={"starý_název_sloupce": "nový_název_sloupce"})
Kde:
starý_název_sloupce
je aktuální název sloupce, který se má změnit.nový_název_sloupce
je nový název, který se sloupci přiřadí.
Příklad:
python
# Přejmenování sloupce „Věk“ na „Stáří“
df = df.rename(columns={„Věk“: „Stáří“})
print(df)
Výsledek:
Jméno Stáří Pohlaví
0 Petr 25 Muž
1 Jana 34 Žena
2 Karel 35 Muž
Pokročilejší techniky
Podmíněné úpravy
Podmíněné úpravy umožňují měnit hodnoty v datovém rámci na základě splnění určitých kritérií. Používají se k tomu booleovské masky.
Příklad:
python
# Aktualizace sloupce „Pohlaví“ pro lidi s věkem nad 30
maska = df[„Stáří“] > 30
df.loc[maska, „Pohlaví“] = „Střední věk“
print(df)
Výstup:
Jméno Stáří Pohlaví
0 Petr 25 Muž
1 Jana 34 Střední věk
2 Karel 35 Střední věk
Vektorizované operace
Vektorizované úpravy umožňují provádět změny na více řádcích nebo sloupcích současně pomocí vektorových operací.
Příklad:
python
# Přičtení 5 let ke všem hodnotám ve sloupci „Stáří“
df[„Stáří“] += 5
print(df)
Výsledek:
Jméno Stáří Pohlaví
0 Petr 30 Muž
1 Jana 39 Střední věk
2 Karel 40 Střední věk
Aktualizace z jiného datového rámce
Řádky a sloupce lze také aktualizovat na základě dat z jiného datového rámce.
Příklad:
python
# Vytvoření nového datového rámce s upraveným věkem
novy_df = pd.DataFrame({
„Jméno“: [„Petr“, „Jana“, „Karel“],
„Stáří“: [32, 36, 38]
})
# Aktualizace datového rámce df pomocí dat z nového datového rámce
df[[„Stáří“]] = novy_df[[„Stáří“]]
print(df)
Závěrem
Aktualizace řádků a sloupců je klíčovou dovedností při práci s daty v Pandas. Metody .loc
, .iloc
, .assign()
a .rename()
nabízejí flexibilní možnosti pro úpravu dat. Dále jsou k dispozici podmíněné a vektorizované úpravy pro složitější manipulace. Ovládnutí těchto technik umožňuje efektivně zpracovávat data a získávat z nich užitečné poznatky.
Časté dotazy
1. Jak upravit jednu konkrétní buňku v Pandas datovém rámci?
Lze použít metodu .at
, například: df.at[index_řádku, index_sloupce] = nová_hodnota
.
2. Jak se přidává nový řádek?
Použijte metodu .loc
s novým indexem, například: df.loc[nový_index] = [nové_hodnoty]
.
3. Jak odstranit řádek nebo sloupec z datového rámce?
Použijte metodu .drop()
, například: df.drop(indexy_řádků)
nebo df.drop(názvy_sloupců, axis=1)
.
4. Jak změnit názvy indexů v datovém rámci?
Použijte metodu .rename_axis()
, například: df.rename_axis("nové_indexy", axis=0)
.
5. Jak aktualizovat více sloupců najednou pomocí .assign()
?
Vytvořte slovník s názvy sloupců a jejich novými hodnotami, například: df = df.assign({"sloupec1": nová_hodnota1, "sloupec2": nová_hodnota2})
.
6. Jak používat podmíněné úpravy s více podmínkami?
Pro kombinaci více podmínek použijte operátory &
(AND) nebo |
(OR) v booleovské masce, například: maska = (df["sloupec1"] > 10) & (df["sloupec2"] < 100)
.
7. Jak aktualizovat datový rámec z jiného zdroje dat?
Můžete použít