Jak přejmenovat sloupce Pandy [4 Examples]

Přejmenování sloupců v datovém rámci pandas je běžnou operací. Naučte se čtyři různé metody přejmenování sloupců pandy.

Pandas je oblíbená knihovna Pythonu pro analýzu dat. Data, která potřebujeme analyzovat, jsou často dostupná v různých formátech, včetně souborů csv a tsv, relačních databází a dalších. A musíte provést nějaké předběžné kontroly dat, zpracovat chybějící hodnoty a připravit data pro další analýzu.

S pandami můžete:

  • Zpracovat data z různých zdrojů
  • Prozkoumejte datovou sadu a zpracujte v ní chybějící hodnoty
  • Analyzujte datovou sadu, abyste získali přehled

U všech projektů analýzy dat budete často vytvářet datové rámce z datových struktur Pythonu, jako je například slovník. Nebo budete číst data z jiných zdrojů, jako je soubor csv, do datového rámce.

Dataframe je základní datová struktura v pandách. Obsahuje záznamy podél řádků a různá pole nebo atributy podél sloupců.

Možná však budete muset přejmenovat názvy sloupců – aby byly popisnější a zlepšily se čitelnost. Zde se naučíte čtyři různé způsoby přejmenování sloupců. Pojďme začít!

Vytvoření Pandas DataFrame

Výukový program můžete sledovat v prostředí notebooku Jupyter s nainstalovanými pandami. Nebo můžete pokračovat ve službě Google Colab.

Nejprve vytvoříme datový rámec pandy a budeme s ním pracovat po zbytek tutoriálu.

Zde je slovník book_dict:

books_dict = {
    "one": [
        "Atomic Habits",
        "His Dark Materials",
        "The Midnight Library",
        "The Broken Earth",
        "Anxious People",
    ],
    "two": [
        "James Clear",
        "Philip Pullman",
        "Matt Haig",
        "N.K.Jemisin",
        "Fredrik Backman",
    ],
    "three": ["Nonfiction", "Fantasy", "Magical Realism", "Fantasy", "Fiction"],
    "four": [4, 5, 3, 5, 4],
}

Nejprve naimportujeme pandy a poté vytvoříme datový rámec df z books_dict.

import pandas as pd

Poznámka: Před přejmenováním sloupců se budeme stále vracet k následující buňce kódu – abychom vytvořili počáteční verzi datového rámce.

df = pd.DataFrame(books_dict)

K získání prvních několika řádků datového rámce df můžeme použít df.head(). Ve výchozím nastavení vrací prvních pět řádků. Zde má df pouze pět řádků; takže při použití df.head() získáme celý datový rámec.

df.head()

Vidíme, že názvy sloupců jsou aktuálně klíči slovníku. Ale to není moc popisné. Tak je přejmenujme! 👩‍🏫

  Megabit vs Megabyte

Metody přejmenování sloupců v Pandas

Nyní se podívejme na různé metody přejmenování sloupců v pandách:

  • Nastavení atributu columns datového rámce na seznam názvů nových sloupců
  • Použití metody rename() na datovém rámci
  • Použití str.replace k přejmenování jednoho nebo více sloupců
  • Použití metody set_axis() na datovém rámci

Nastavení atributu sloupců

Pro jakýkoli datový rámec obsahuje atribut columns seznam názvů sloupců:

df.columns
# Index(['one', 'two', 'three', 'four'], dtype="object")

Přejmenujme sloupce, aby označovaly, co každé pole znamená, a pak zavolejte df.head(), abyste viděli výsledky:

df.columns = ['Title','Author','Genre','Rating']
df.head()

Pomocí metody rename()

Chcete-li přejmenovat sloupce v pandách, můžete použít metodu rename() se syntaxí:

df.rename(column={mapping})

Toto mapování může být slovník, který má následující formu:

{'old_col_name_1':'new_col_name_1', 'old_col_name_2':'new_col_name_2',...,
'old_col_name_n':'new_col_name_n'}

Vytvořme df ze slovníku books_dict:

df = pd.DataFrame(books_dict)

Pomocí metody rename() s výše uvedenou syntaxí získáme df_1. Což je kopie datového rámce s přejmenovanými sloupci.

df_1 = df.rename(columns={'one':'Title','two':'Author','three':'Genre','four':'Rating'})
df_1.head()

Názvy sloupců df_1 jsou tedy upraveny:

  Jak používat Systemd k výpisu služeb

Názvy sloupců původního datového rámce df se však nemění:

df.head()

Protože nám tato metoda umožňuje poskytnout mapování mezi starými a novými názvy sloupců, můžeme ji použít k přejmenování jednoho i více sloupců.

Přejmenovat sloupce na místě

Co když chcete upravit stávající datový rámec – bez vytvoření nové kopie?

Chcete-li to provést, můžete ve volání metody nastavit inplace rovné hodnotě True.

df.rename(columns={'one':'Title','two':'Author','three':'Genre','four':'Rating'},inplace=True)
df.head()

Tím přejmenujete sloupce původního datového rámce df:

Zatím jsme viděli, jak:

  • Přejmenujte sloupce poskytnutím slovníku, který mapuje staré názvy sloupců na nové názvy sloupců
  • Přejmenujte sloupce na místě bez vytvoření nového datového rámce

Metodu přejmenování můžete použít i jiným způsobem.

Další přístup k přejmenování sloupců

Přejmenujme sloupce tak, aby byly psány velkými písmeny:

df = pd.DataFrame(books_dict)
df.columns = ['TITLE','AUTHOR','GENRE','RATING']
df.head()

Dataframe df nyní vypadá takto:

Předpokládejme, že chceme změnit názvy každého z těchto sloupců tak, aby byly v názvu. Namísto poskytnutí slovníku pro každý název sloupce můžeme zadat volání funkce nebo metody pro objekt, jak je znázorněno:

df.rename(str.title,axis="columns",inplace=True)
df.head()

Zde nastavíme osu na ‚columns‘ a pomocí str.title převedeme všechny názvy sloupců na velikost písmen.

Použití str.replace() v řetězcích názvů sloupců

Jako vždy spusťte následující buňku kódu a vytvořte datový rámec ze slovníku:

df = pd.DataFrame(books_dict)

V Pythonu byste použili metodu replace() se syntaxí str.replace(this, with_this), abyste získali kopii řetězce s požadovanými změnami. Zde je příklad:

>>> str1 = 'Marathon'
>>> str1.replace('Mara','Py')
'Python'

Víte, že atribut columns obsahuje seznam řetězců obsahujících názvy sloupců. Takže můžete volat str.replace(‚old_column_name‘,’new_column_name‘) takto:

df.columns = df.columns.str.replace('one','Title')
df.head()

Zde jsme přejmenovali pouze sloupec ‚jeden‘ na ‚Titul‘, takže názvy ostatních sloupců zůstávají nezměněny.

  Jak získat živý počet slov v Dokumentech Google v Chrome

Nyní přejmenujme ostatní sloupce stejným způsobem:

df.columns = df.columns.str.replace('two','Author')
df.columns = df.columns.str.replace('three','Genre')
df.columns = df.columns.str.replace('four','Rating')
df.head()

Tato metoda přejmenování sloupců je užitečná, když potřebujete přejmenovat pouze jeden nebo malou podmnožinu sloupců.

Pomocí metody set_axis()

Vraťme se k původní verzi datového rámce:

df = pd.DataFrame(books_dict)

K přejmenování sloupců můžete také použít metodu set_axis(). Syntaxe je následující:

df.set_axis([list_of_column_names],axis="columns")

Ve výchozím nastavení metoda set_axis() vrací kopii datového rámce. Ale pokud chcete upravit datový rámec na místě, můžete nastavit kopírování na False.

df = df.set_axis(['Title','Author','Genre','Rating'],axis="columns",copy=False)
df.head()

Závěr

Zde je přehled různých metod přejmenování sloupců v datovém rámci pandas:

  • U ukázkového datového rámce df je atribut columns df.columns seznamem názvů sloupců. Chcete-li sloupce přejmenovat, můžete tento atribut nastavit na seznam názvů nových sloupců.
  • Metoda rename() pro přejmenování sloupců pracuje se syntaxí: df.rename(columns={mapping}), kde mapování odkazuje na mapování ze starých názvů sloupců na názvy nových sloupců. Můžete také použít metodu rename() zadáním funkce, která má být aplikována na všechny názvy sloupců: df.rename(volání funkce nebo metody, axis=’columns‘).
  • Stejně jako používáte metodu replace() v řetězci Python, můžete použít df.columns.str.replace(‚starý_název_sloupce‘, ‚název_nového_sloupce‘) k nahrazení názvů sloupců.
  • Dalším přístupem k přejmenování ve sloupcích je použití metody set_axis se syntaxí: df.set_axis(list_of_col_names,axis=’columns‘).

To je pro tento tutoriál vše! Podívejte se na seznam spolupracujících notebooků pro analýzu dat.