Sådan omdøbes Pandas-kolonner [4 Examples]

At omdøbe kolonner i en panda-dataramme er en almindelig operation. Lær de fire forskellige metoder til at omdøbe pandasøjler.

Pandas er et populært Python-bibliotek til dataanalyse. Data, som vi skal analysere, er ofte tilgængelige i forskellige formater, herunder csv- og tsv-filer, relationelle databaser og mere. Og du skal foretage nogle foreløbige kontroller af dataene, håndtere manglende værdier og forberede dataene til yderligere analyse.

Med pandaer kan du:

  • Indtag data fra forskellige kilder
  • Udforsk datasættet og håndter manglende værdier i det
  • Analyser datasættet for at få indsigt

For alle dataanalyseprojekter vil du ofte oprette datarammer fra Python-datastrukturer, såsom en ordbog. Eller du vil læse data fra andre kilder, såsom en csv-fil, ind i en dataramme.

Datarammen er den grundlæggende datastruktur i pandaer. Den indeholder posterne langs rækkerne og de forskellige felter eller attributter langs kolonnerne.

Du skal dog muligvis omdøbe kolonnenavnene – for at gøre dem mere beskrivende og forbedre læsbarheden. Her lærer du fire forskellige måder at omdøbe kolonner på. Lad os begynde!

Oprettelse af en Pandas DataFrame

Du kan følge med i selvstudiet i et Jupyter notebook-miljø med pandaer installeret. Eller du kan følge med på Google Colab.

Først vil vi oprette en panda-dataramme og arbejde med den i resten af ​​selvstudiet.

Her er en ordbog 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],
}

Vi importerer først pandaer og opretter derefter en dataramme df fra books_dict.

import pandas as pd

Bemærk: Vi vil blive ved med at vende tilbage til følgende kodecelle – for at oprette en indledende version af datarammen – før vi omdøber kolonnerne.

df = pd.DataFrame(books_dict)

Vi kan bruge df.head() til at få de første par rækker af datarammen df. Som standard returnerer den de første fem rækker. Her har df kun fem rækker; så når vi bruger df.head() får vi hele datarammen.

df.head()

Vi ser, at kolonnenavnene i øjeblikket er ordbogens nøgler. Men dette er ikke særlig beskrivende. Så lad os omdøbe dem! 👩‍🏫

  8 bedste virtuelle terminaler til sikre betalinger fra enhver enhed

Metoder til at omdøbe kolonner i pandaer

Lad os nu se på de forskellige metoder til at omdøbe kolonner i pandaer:

  • Indstilling af kolonneattributten for datarammen til listen over nye kolonnenavne
  • Brug af rename() metoden på datarammen
  • Brug str.replace til at omdøbe en eller flere kolonner
  • Brug af metoden set_axis() på datarammen

Indstilling af kolonner Attribut

For enhver dataramme indeholder kolonneattributten listen over kolonnenavne:

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

Lad os omdøbe kolonnerne for at angive, hvad hvert felt står for, og derefter kalde df.head() for at se resultaterne:

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

Brug af rename() metoden

For at omdøbe kolonner i pandaer kan du bruge rename() metoden med syntaksen:

df.rename(column={mapping})

Denne kortlægning kan være en ordbog, der har følgende 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'}

Lad os oprette df fra books_dict-ordbogen:

df = pd.DataFrame(books_dict)

Ved at bruge rename() metoden med ovenstående syntaks får vi df_1. Som er en kopi af datarammen med kolonnerne omdøbt.

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

Så kolonnenavnene på df_1 er ændret:

  22 bedste gratis falske telefonnumre-app til iphone

Men kolonnenavnene på den originale dataramme df ændres ikke:

df.head()

Fordi denne metode lader os give en kortlægning mellem de gamle og de nye kolonnenavne, kan vi bruge den til at omdøbe både enkelte og flere kolonner.

Omdøb kolonner på plads

Hvad hvis du vil ændre den eksisterende dataramme – uden at oprette en ny kopi?

For at gøre dette kan du indstille inplace lig med True i metodekaldet.

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

Dette vil omdøbe kolonnerne i den originale dataramme df:

Indtil videre har vi set, hvordan man:

  • Omdøb kolonner ved at levere en ordbog, der knytter de gamle kolonnenavne til de nye kolonnenavne
  • Omdøb kolonner på plads uden at oprette en ny dataramme

Du kan også bruge omdøbningsmetoden på en anden måde.

En anden tilgang til at omdøbe kolonner

Lad os omdøbe kolonnerne, så de er med store bogstaver:

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

Datarammen df ser nu sådan ud:

Antag, at vi ønsker at ændre hver af disse kolonnenavne til at være i titlen. I stedet for at angive en ordbog for hvert kolonnenavn, kan vi angive et funktions- eller metodekald på et objekt som vist:

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

Her sætter vi akse til ‘kolonner’ og bruger str.title til at konvertere alle kolonnenavne til titlens store og små bogstaver.

Brug str.replace() på kolonnenavnestrengene

Kør som altid følgende kodecelle for at oprette datarammen fra ordbogen:

df = pd.DataFrame(books_dict)

I Python ville du have brugt metoden replace() med syntaksen str.replace(this, with_this) for at få en kopi af en streng med de nødvendige ændringer. Her er et eksempel:

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

Du ved, at kolonneattributten indeholder en liste over strenge, der indeholder navnene på kolonnerne. Så du kan kalde str.replace(‘old_column_name’,’new_column_name’) sådan:

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

Her omdøbte vi kun kolonnen ‘én’ til ‘Titel’, så de øvrige kolonnenavne forbliver uændrede.

  Top 10 Video Voice Over-værktøjer til at forbedre dit visuelle indhold

Lad os nu omdøbe de andre kolonner med samme tilgang:

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

Denne metode til at omdøbe kolonner er nyttig, når du kun skal omdøbe én eller en lille undergruppe af kolonnerne.

Brug af set_axis() metoden

Lad os gå tilbage til den oprindelige version af en dataramme:

df = pd.DataFrame(books_dict)

Du kan også bruge metoden set_axis() til at omdøbe kolonnerne. Syntaksen er som følger:

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

Som standard returnerer metoden set_axis() kopien af ​​datarammen. Men hvis du vil ændre datarammen på plads, kan du indstille kopi til Falsk.

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

Konklusion

Her er en gennemgang af de forskellige metoder til at omdøbe kolonner i en panda-dataramme:

  • For en eksempeldataramme df er kolonneattributten df.columns listen over kolonnenavne. For at omdøbe kolonnerne kan du indstille denne attribut til listen over nye kolonnenavne.
  • Rename()-metoden til at omdøbe kolonner fungerer med syntaksen: df.rename(columns={mapping}), hvor mapping refererer til tilknytningen fra de gamle kolonnenavne til de nye kolonnenavne. Du kan også bruge metoden rename() ved at angive en funktion, der skal anvendes på alle kolonnenavne: df.rename(funktions- eller metodekald, axis=’kolonner’).
  • Ligesom du bruger erstatte()-metoden på en Python-streng, kan du bruge df.columns.str.replace(‘old_column_name’, ‘new_column_name’) til at erstatte kolonnenavne.
  • En anden tilgang til at omdøbe i kolonner er at bruge set_axis-metoden med syntaksen: df.set_axis(list_of_col_names,axis=’columns’).

Det var alt for denne tutorial! Tjek listen over samarbejdsnotesbøger til dataanalyse.