Cum să redenumești coloanele Pandas [4 Examples]

Redenumirea coloanelor dintr-un cadru de date Pandas este o operație comună. Aflați cele patru metode diferite de a redenumi coloanele panda.

Pandas este o bibliotecă populară Python pentru analiza datelor. Datele pe care trebuie să le analizăm sunt adesea disponibile în diferite formate, inclusiv fișiere csv și tsv, baze de date relaționale și multe altele. Și trebuie să faceți câteva verificări preliminare asupra datelor, să gestionați valorile lipsă și să pregătiți datele pentru analize ulterioare.

Cu panda, puteți:

  • Ingerați date din diverse surse
  • Explorați setul de date și gestionați valorile lipsă din el
  • Analizați setul de date pentru a obține informații

Pentru toate proiectele de analiză a datelor, veți crea adesea cadre de date din structurile de date Python, cum ar fi un dicționar. Sau veți citi date din alte surse, cum ar fi un fișier csv într-un cadru de date.

Cadrul de date este structura de bază a datelor în panda. Conține înregistrările de-a lungul rândurilor și diferitele câmpuri sau atribute de-a lungul coloanelor.

Cu toate acestea, poate fi necesar să redenumiți numele coloanelor, pentru a le face mai descriptive și pentru a îmbunătăți lizibilitatea. Aici veți învăța patru moduri diferite de a redenumi coloanele. Sa incepem!

Crearea unui Pandas DataFrame

Puteți urma tutorialul într-un mediu de notebook Jupyter cu panda instalați. Sau puteți urmări pe Google Colab.

Mai întâi, vom crea un cadru de date panda și vom lucra cu el pentru restul tutorialului.

  Cum să descărcați filme pe Netflix pentru vizionare offline

Iată un dicționar 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],
}

Mai întâi vom importa panda și apoi vom crea un dataframe df din books_dict.

import pandas as pd

Notă: Vom reveni la următoarea celulă de cod – pentru a crea o versiune inițială a cadrului de date – înainte de a redenumim coloanele.

df = pd.DataFrame(books_dict)

Putem folosi df.head() pentru a obține primele câteva rânduri ale cadrului de date df. În mod implicit, returnează primele cinci rânduri. Aici df are doar cinci rânduri; deci atunci când folosim df.head() obținem întregul cadru de date.

df.head()

Vedem că numele coloanelor sunt în prezent cheile dicționarului. Dar acest lucru nu este foarte descriptiv. Deci haideți să le redenumim! 👩‍🏫

Metode de redenumire a coloanelor din Pandas

Acum să ne uităm la diferitele metode de a redenumi coloanele în panda:

  • Setarea atributului coloane al cadrului de date la lista de nume de coloane noi
  • Folosind metoda rename() pe cadrul de date
  • Folosind str.replace pentru a redenumi una sau mai multe coloane
  • Folosind metoda set_axis() pe cadrul de date

Setarea atributului coloanelor

Pentru orice cadru de date, atributul coloane conține lista de nume de coloane:

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

Să redenumim coloanele pentru a indica ceea ce reprezintă fiecare câmp și apoi să apelăm df.head() pentru a vedea rezultatele:

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

Folosind metoda rename().

Pentru a redenumi coloanele din panda, puteți folosi metoda rename() cu sintaxa:

df.rename(column={mapping})

Această mapare poate fi un dicționar care are următoarea formă:

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

Să creăm df din dicționarul books_dict:

df = pd.DataFrame(books_dict)

Folosind metoda rename() cu sintaxa de mai sus, obținem df_1. Care este o copie a cadrului de date cu coloanele redenumite.

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

Deci, numele coloanelor lui df_1 sunt modificate:

  Cum să scanezi pe iPhone

Dar numele coloanelor din cadrul de date original df nu se schimbă:

df.head()

Deoarece această metodă ne permite să furnizăm o mapare între numele vechi și cel nou al coloanei, o putem folosi pentru a redenumi atât coloanele simple, cât și mai multe.

Redenumiți coloanele în loc

Ce se întâmplă dacă doriți să modificați cadrul de date existent, fără a crea o copie nouă?

Pentru a face acest lucru, puteți seta inplace egal cu True în apelul de metodă.

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

Aceasta va redenumi coloanele din cadrul de date original df:

Până acum am văzut cum să:

  • Redenumiți coloanele furnizând un dicționar care mapează vechile nume de coloane cu noile nume de coloane
  • Redenumiți coloanele la locul lor fără a crea un nou cadru de date

Puteți utiliza metoda de redenumire și în alt mod.

O altă abordare a redenumirii coloanelor

Să redenumim coloanele astfel încât să fie cu majuscule:

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

Cadrul de date df arată acum astfel:

Să presupunem că vrem să schimbăm fiecare dintre aceste nume de coloană pentru a fi în cazul titlului. În loc să furnizăm un dicționar pentru fiecare nume de coloană, putem specifica o funcție sau un apel de metodă pentru un obiect, așa cum se arată:

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

Aici, setăm axa la „coloane” și folosim str.title pentru a converti toate numele coloanelor în cazul titlului.

Folosind str.replace() pe șirurile de nume de coloană

Ca întotdeauna, rulați următoarea celulă de cod pentru a crea cadrul de date din dicționar:

df = pd.DataFrame(books_dict)

În Python, ați fi folosit metoda replace() cu sintaxa str.replace(this, with_this) pentru a obține o copie a unui șir cu modificările necesare. Iată un exemplu:

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

Știți că atributul coloane conține o listă de șiruri care conțin numele coloanelor. Deci, puteți apela str.replace(‘old_column_name’,’new_column_name’) astfel:

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

Aici am redenumit doar coloana „unu” în „Titlu”, astfel încât numele celorlalte coloane rămân neschimbate.

  12 cele mai bune programatoare de postări LinkedIn pentru postări perfect sincronizate

Acum să redenumim celelalte coloane folosind aceeași abordare:

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()

Această metodă de redenumire a coloanelor este utilă atunci când trebuie să redenumiți doar una sau un subset mic de coloane.

Folosind metoda set_axis().

Să revenim la versiunea inițială a unui cadru de date:

df = pd.DataFrame(books_dict)

De asemenea, puteți utiliza metoda set_axis() pentru a redenumi coloanele. Sintaxa este următoarea:

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

În mod implicit, metoda set_axis() returnează copia cadrului de date. Dar dacă doriți să modificați cadrul de date în loc, puteți seta copierea la Fals.

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

Concluzie

Iată o trecere în revistă a diferitelor metode de a redenumi coloanele dintr-un cadru de date Pandas:

  • Pentru un exemplu de cadru de date df, atributul coloane df.columns este lista de nume de coloane. Pentru a redenumi coloanele, puteți seta acest atribut în lista de nume de coloane noi.
  • Metoda rename() pentru a redenumi coloanele funcționează cu sintaxa: df.rename(columns={mapping}) unde maparea se referă la maparea de la vechile nume de coloane la noile nume de coloane. De asemenea, puteți utiliza metoda rename() specificând o funcție care să fie aplicată tuturor numelor de coloane: df.rename(funcție sau apel de metodă, axis=’coloane’).
  • La fel cum folosești metoda replace() pe un șir Python, poți folosi df.columns.str.replace(‘old_column_name’, ‘new_column_name’) pentru a înlocui numele coloanelor.
  • O altă abordare a redenumirii în coloane este utilizarea metodei set_axis cu sintaxa: df.set_axis(list_of_col_names,axis=’columns’).

Asta e tot pentru acest tutorial! Consultați lista de notebook-uri colaborative pentru analiza datelor.