Jak aktualizovat řádky a sloupce pomocí Python Pandas

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