Pandas – Přejmenování sloupce a indexu

Pandas představuje klíčový nástroj v Pythonu pro zpracování a analýzu dat. Tato knihovna umožňuje efektivní práci s datovými strukturami, zejména s DataFrame a Series. Jednou ze základních operací je přejmenování sloupců a indexů v DataFrame. V tomto článku se podíváme na různé přístupy k přejmenování, včetně jejich syntaxe a praktického využití.

Změna názvů sloupců

Použití funkce rename()

Funkce rename() je univerzální metoda pro změnu názvů sloupců v DataFrame. Základní syntaxe je následující:

DataFrame.rename(mapper, axis=1, copy=True, inplace=False, level=None, errors='raise')

Parametry:

  • mapper: Může to být funkce, slovník mapování (původní název : nový název) nebo seznam nových názvů sloupců.
  • axis: Určuje, zda se má pracovat s indexem (0) nebo sloupci (1, výchozí hodnota).
  • copy: Pokud je nastaveno na True, vytvoří se nová kopie DataFrame. Jinak se změny provedou přímo v původním DataFrame.
  • inplace: Pokud je True, úpravy se provedou v původním DataFrame. Jinak se vrací nová kopie.
  • level: Určuje úroveň hierarchického indexu, která se má přejmenovat.
  • errors: Definuje chování v případě chyby během přejmenování.

Ukázkový příklad:

import pandas as pd

df = pd.DataFrame({'sloupec1': [1, 2, 3], 'sloupec2': [4, 5, 6]})

df = df.rename(columns={'sloupec1': 'novy_sloupec1', 'sloupec2': 'novy_sloupec2'})

print(df)

Výstup:

   novy_sloupec1  novy_sloupec2
0              1             4
1              2             5
2              3             6

Využití metody set_axis()

Metoda set_axis() je další možností pro přejmenování sloupců. Její syntaxe je:

DataFrame.set_axis(labels, axis=1, inplace=False)

Parametry:

  • labels: Seznam nových názvů sloupců.
  • axis: 0 pro index, 1 pro sloupce (výchozí).
  • inplace: Pokud True, provede změny přímo v DataFrame. Jinak vrátí nový DataFrame.

Příklad:

df = pd.DataFrame({'sloupec1': [1, 2, 3], 'sloupec2': [4, 5, 6]})

df = df.set_axis(['novy_sloupec1', 'novy_sloupec2'], axis=1)

print(df)

Výstup:

   novy_sloupec1  novy_sloupec2
0              1             4
1              2             5
2              3             6

Úprava názvů indexů

Použití funkce rename_axis()

Funkce rename_axis() slouží ke změně názvu indexu DataFrame. Její syntaxe je následující:

DataFrame.rename_axis(mapper, axis=0, copy=True, inplace=False, level=None, errors='raise')

Parametry:

  • mapper: Funkce, slovník mapování nebo nový název indexu.
  • axis: 0 pro index (výchozí), 1 pro sloupce.
  • copy: Pokud True, vrací novou kopii. Jinak upravuje původní DataFrame.
  • inplace: Pokud je True, změny se provedou přímo v DataFrame. Jinak se vrátí kopie.
  • level: Úroveň hierarchického indexu, která se má přejmenovat.
  • errors: Akce, která se má provést, pokud dojde k chybě.

Příklad:

df = pd.DataFrame({'sloupec1': [1, 2, 3], 'sloupec2': [4, 5, 6]})

df = df.rename_axis('novy_index', axis=0)

print(df)

Výstup:

            sloupec1  sloupec2
novy_index            
0                1         4
1                2         5
2                3         6

Využití metody set_index()

Pro nastavení nového indexu můžeme použít metodu set_index(), jejíž syntaxe je:

DataFrame.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)

Parametry:

  • keys: Sloupec nebo seznam sloupců, které se stanou novým indexem.
  • drop: Pokud True, odstraní původní sloupec, který se stal indexem.
  • append: Pokud True, přidá nový index ke stávajícímu.
  • inplace: Pokud True, provede změny v původním DataFrame. Jinak vrátí nový DataFrame.
  • verify_integrity: Pokud True, ověří integritu nového indexu.

Příklad:

df = pd.DataFrame({'sloupec1': [1, 2, 3], 'sloupec2': [4, 5, 6]})

df = df.set_index('sloupec1')

print(df)

Výstup:

         sloupec2
sloupec1        
1             4
2             5
3             6

Závěr

Přejmenování sloupců a indexů v Pandas je klíčové pro efektivní organizaci a manipulaci s daty. Funkce rename(), set_axis(), rename_axis() a set_index() nabízejí flexibilní nástroje pro přizpůsobení názvů sloupců a indexů. Pochopením a správným používáním těchto metod můžete zvýšit čitelnost a použitelnost vašich DataFrame.

Často kladené otázky (FAQ)

  1. Jak přejmenovat více sloupců najednou?
    Použijte slovník mapování v parametru mapper funkce rename().
  2. Jak přejmenovat pouze určitou úroveň hierarchického indexu?
    Využijte parametr level ve funkcích rename_axis() a set_index().
  3. Jak vytvořit nový index z více sloupců?
    Použijte metodu set_index() se seznamem sloupců v parametru keys.
  4. Jak přejmenovat sloupce a index ve stejné operaci?
    Kombinujte funkce rename() a rename_axis().
  5. Jak přejmenovat sloupce pomocí dynamických pravidel?
    Použijte lambda funkci jako parametr mapper ve funkci rename().
  6. Jak přidat nový sloupec s názvem odvozeným od existujícího sloupce?
    Použijte operátor + pro vytvoření nového názvu.
  7. Jak odstranit duplicitní názvy při přejmenovávání?
    Nastavte parametr drop na True v metodě set_index().
  8. Jak nastavit prázdné řetězce pro názvy sloupců nebo indexů?
    Použijte None jako parametr mapper ve funkcích rename() a rename_axis().