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)
- Jak přejmenovat více sloupců najednou?
Použijte slovník mapování v parametrumapper
funkcerename()
. - Jak přejmenovat pouze určitou úroveň hierarchického indexu?
Využijte parametrlevel
ve funkcíchrename_axis()
aset_index()
. - Jak vytvořit nový index z více sloupců?
Použijte metoduset_index()
se seznamem sloupců v parametrukeys
. - Jak přejmenovat sloupce a index ve stejné operaci?
Kombinujte funkcerename()
arename_axis()
. - Jak přejmenovat sloupce pomocí dynamických pravidel?
Použijtelambda
funkci jako parametrmapper
ve funkcirename()
. - 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. - Jak odstranit duplicitní názvy při přejmenovávání?
Nastavte parametrdrop
na True v metoděset_index()
. - Jak nastavit prázdné řetězce pro názvy sloupců nebo indexů?
PoužijteNone
jako parametrmapper
ve funkcíchrename()
arename_axis()
.