Pandas & NumPy Academy · Lektion

Tilføjelse og fjernelse af kolonner

Tilføj nye beregnede kolonner, omdøb eksisterende kolonner, og fjern uønskede kolonner eller rækker med drop().

Lektion 3 af 413 trin

Tilføjelse og fjernelse af kolonner er en gratis Pandas & NumPy Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Pandas & NumPy Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Pandas & NumPy Academy-kurset indeholder 4 lektioner i alt.

Tilføjelse af en ny kolonne via tildeling

Den enkleste måde at tilføje en kolonne på er direkte tildeling: df['new_col'] = values. Højresiden kan være en skalarværdi (udbredes til alle rækker), en liste med samme længde, et NumPy-array, en Pandas-Series (justeret efter indeks) eller et beregnet udtryk, der bruger eksisterende kolonner. Nye kolonner tilføjes til højre i DataFrame.

import pandas as pd

df = pd.DataFrame({'price': [10.0, 20.0, 15.0], 'qty': [3, 5, 2]})
df['revenue'] = df['price'] * df['qty']
df['currency'] = 'USD'
print(df)

Feature engineering: Beregnede kolonner

En af de mest almindelige DataFrame-operationer er at oprette afledte features ud fra eksisterende kolonner. Du kan beregne løbende totaler, forhold, flag eller kode kategoriske værdier i ét vektoriseret udtryk. Disse beregnede kolonner opdateres automatisk, når kildekolonnerne ændres, hvis du beregner dem igen, hvilket gør pipelines til feature engineering nemme at genskabe.

import pandas as pd

df = pd.DataFrame({'salary': [50000, 80000, 60000],
                   'bonus': [5000, 12000, 7000]})
df['total_comp'] = df['salary'] + df['bonus']
df['bonus_pct'] = (df['bonus'] / df['salary'] * 100).round(1)
print(df)

Brug af assign() til metodekæder

df.assign(new_col=expression) returnerer en ny DataFrame med den tilføjede kolonne uden at ændre den oprindelige. I modsætning til direkte tildeling passer den naturligt ind i en metodekæde. Du kan tilføje flere kolonner i ét kald, og udtryk for senere kolonner kan referere til tidligere kolonner, der er defineret i det samme assign()-kald, ved hjælp af lambda-funktioner.

import pandas as pd

df = pd.DataFrame({'x': [1, 2, 3], 'y': [4, 5, 6]})
result = (df
    .assign(sum_xy=lambda d: d['x'] + d['y'])
    .assign(ratio=lambda d: d['x'] / d['sum_xy'])
)
print(result)

Omdøbning af kolonner med rename()

df.rename(columns={'old': 'new'}) returnerer en ny DataFrame med omdøbte kolonner. Send en dict for at omdøbe udvalgte kolonner uden at påvirke de andre. Du kan også omdøbe med en funktion: df.rename(columns=str.upper) konverterer alle kolonnenavne til store bogstaver. Omdøb altid, før du sammenfletter DataFrames fra forskellige kilder, så nøglekolonnerne stemmer overens.

import pandas as pd

df = pd.DataFrame({'a': [1, 2], 'b': [3, 4], 'c': [5, 6]})
renamed = df.rename(columns={'a': 'alpha', 'b': 'beta'})
print(renamed.columns.tolist())   # ['alpha', 'beta', 'c']

# Rename all columns to uppercase
print(df.rename(columns=str.upper).columns.tolist())  # ['A', 'B', 'C']

Rensning af kolonnenavne

Kolonnenavne fra virkelige datasæt indeholder ofte mellemrum, specialtegn eller inkonsekvent brug af store og små bogstaver. Et almindeligt forbehandlingstrin er at normalisere dem: fjern overflødige mellemrum, konverter til små bogstaver, og erstat mellemrum med understregninger. Det gør kolonner tilgængelige via punktnotation og undgår problemer med citationstegn i SQL-lignende forespørgselsstrenge.

import pandas as pd

df = pd.DataFrame(columns=['First Name', 'Last Name', 'Email Address'])
df.columns = (df.columns
    .str.strip()
    .str.lower()
    .str.replace(' ', '_', regex=False)
)
print(df.columns.tolist())  # ['first_name', 'last_name', 'email_address']

Indsættelse af en kolonne på en bestemt placering

df.insert(loc, column, value) indsætter en kolonne på heltalspositionen loc og forskyder de øvrige kolonner mod højre. Det er nyttigt, når du vil have den nye kolonne placeret ved siden af relaterede kolonner i stedet for sidst. Den ændrer DataFrame direkte i modsætning til assign().

import pandas as pd

df = pd.DataFrame({'name': ['A', 'B'], 'score': [80, 90]})
df.insert(1, 'grade', ['B', 'A'])
print(df)
#   name grade  score
# 0    A     B     80
# 1    B     A     90

Fjernelse af kolonner med drop()

df.drop(columns=['col1', 'col2']) returnerer en ny DataFrame uden disse kolonner. Den ældre syntaks df.drop(['col1', 'col2'], axis=1) fungerer også, men er mindre læsevenlig. Hvis du vil fjerne dem direkte, skal du angive inplace=True. Foretræk altid at returnere en ny DataFrame i pipelines, så den oprindelige bevares til sammenligning eller tilbagerulning.

import pandas as pd

df = pd.DataFrame({'a': [1,2], 'b': [3,4], 'c': [5,6], 'd': [7,8]})
cleaned = df.drop(columns=['b', 'd'])
print(cleaned.columns.tolist())  # ['a', 'c']

Fjernelse af rækker med drop()

df.drop(index=['r1', 'r2']) fjerner rækker efter etiket. df.drop([0, 2]) fjerner række 0 og række 2 fra et standardheltalsindeks. Fjernelse af rækker bruges ofte til at fjerne kendte fejlbehæftede poster, outliers eller testrækker efter datarensning. Foretræk boolesk indeksering til betingelsesbaseret fjernelse, så koden forbliver læsevenlig.

import pandas as pd

df = pd.DataFrame({'x': [10, 20, 30, 40]}, index=['a', 'b', 'c', 'd'])
trimmed = df.drop(index=['b', 'd'])
print(trimmed)
#     x
# a  10
# c  30

pop() til at fjerne og returnere en kolonne

df.pop('col') fjerner kolonnen fra DataFrame direkte og returnerer den som en Series. Det er nyttigt, når du skal udtrække en målkolonne (label) fra en feature-matrice — du fjerner den fra DataFrame og gemmer den separat, så den kan bruges som y-variabel i en model.

import pandas as pd

df = pd.DataFrame({'feature1': [1,2], 'feature2': [3,4], 'target': [0,1]})
y = df.pop('target')   # removes column and returns as Series
X = df                 # remaining features
print(y.tolist())      # [0, 1]
print(X.columns.tolist())  # ['feature1', 'feature2']

Omarrangering af kolonner

Hvis du vil omarrangere kolonner, skal du vælge dem i den ønskede rækkefølge med df[['col3', 'col1', 'col2']]. I store DataFrames, hvor du kun vil flytte nogle få kolonner, kan du beregne den ønskede rækkefølge programmatisk: flyt prioriterede kolonner frem, og lad resten følge efter. Dette er et almindeligt rapporteringstrin før eksport til Excel.

import pandas as pd

df = pd.DataFrame({'id': [1,2], 'score': [80,90], 'name': ['A','B']})
# Move 'name' and 'id' to front
cols = ['name', 'id'] + [c for c in df.columns if c not in ['name', 'id']]
df = df[cols]
print(df.columns.tolist())  # ['name', 'id', 'score']

Opdatering af eksisterende kolonneværdier

Opdatering af alle værdier i en eksisterende kolonne bruger den samme tildelingssyntaks som tilføjelse af en ny: df['col'] = new_values. Brug df.loc[mask, 'col'] = value til kun at opdatere de rækker, der matcher en betingelse. Brug aldrig kædet indeksering til opdateringer — brug altid .loc for at undgå advarslen SettingWithCopyWarning.

import pandas as pd

df = pd.DataFrame({'name': ['Alice', 'Bob', 'Carol'], 'score': [45, 80, 92]})
# Set scores below 50 to 50 (floor)
df.loc[df['score'] < 50, 'score'] = 50
print(df['score'].tolist())  # [50, 80, 92]

Hurtigt tjek

Test din forståelse af tilføjelse og fjernelse af kolonner fra denne lektion.

Opsummering af lektionen

I denne lektion har du lært, at nye kolonner tilføjes via tildeling eller den metodekædevenlige assign(), at rename() ændrer kolonnenavne uden at ændre data, og at drop() fjerner kolonner eller rækker og som standard returnerer en ny DataFrame. Dernæst bruger vi head(), tail(), info() og describe() til hurtigt at profilere enhver DataFrame.

Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “Tilføjelse og fjernelse af kolonner” gratis?

Ja — hele teksten til “Tilføjelse og fjernelse af kolonner” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Pandas & NumPy Academy-kurset, skal du opgradere til CoddyKit PRO. Pandas & NumPy Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Tilføjelse og fjernelse af kolonner”?

Tilføj nye beregnede kolonner, omdøb eksisterende kolonner, og fjern uønskede kolonner eller rækker med drop(). Du øver dig i Pandas & NumPy Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Pandas & NumPy Academy?

Der kræves ingen tidligere erfaring. Pandas & NumPy Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Tilføjelse og fjernelse af kolonner”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Pandas & NumPy Academy-lektion?

Ja. Alle Pandas & NumPy Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Oprettelse af DataFrames
  2. Valg af kolonner og rækker
  3. Tilføjelse og fjernelse af kolonner
  4. Grundlæggende DataFrame-inspektion
← Tilbage til Pandas & NumPy Academy