Dodawanie i usuwanie kolumn
Dodawać nowe obliczane kolumny, zmieniać nazwy istniejących oraz usuwać niepotrzebne kolumny lub wiersze za pomocą drop()
Dodawanie i usuwanie kolumn to bezpłatna lekcja Pandas & NumPy Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Pandas & NumPy Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Pandas & NumPy Academy zawiera 4 lekcji w sumie.
Dodawanie nowej kolumny przez przypisanie
Najprostszym sposobem dodania kolumny jest bezpośrednie przypisanie: df['new_col'] = values. Prawa strona może zawierać skalar (rozszerzany na wszystkie wiersze), listę o tej samej długości, tablicę NumPy, serię Pandas (dopasowywaną według indeksu) lub wyrażenie obliczeniowe wykorzystujące istniejące kolumny. Nowe kolumny są dodawane po prawej stronie obiektu 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)Inżynieria cech: kolumny obliczeniowe
Jedną z najczęstszych operacji na obiekcie DataFrame jest tworzenie cech pochodnych na podstawie istniejących kolumn. W jednym zwektoryzowanym wyrażeniu można obliczać sumy narastające, współczynniki, znaczniki lub kodować wartości kategorialne. Te kolumny obliczeniowe są automatycznie aktualizowane po zmianie kolumn źródłowych, jeśli zostaną ponownie obliczone, dzięki czemu potoki inżynierii cech można łatwo odtwarzać.
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)Używanie assign() w łańcuchowym wywoływaniu metod
df.assign(new_col=expression) zwraca nowy obiekt DataFrame z dodaną kolumną, nie modyfikując oryginału. W przeciwieństwie do bezpośredniego przypisania naturalnie pasuje do łańcucha metod. W jednym wywołaniu można dodać wiele kolumn, a wyrażenia późniejszych kolumn mogą odwoływać się do wcześniejszych kolumn zdefiniowanych w tym samym wywołaniu assign() za pomocą funkcji lambda.
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)Zmiana nazw kolumn za pomocą rename()
df.rename(columns={'old': 'new'}) zwraca nowy obiekt DataFrame ze zmienionymi nazwami kolumn. Należy przekazać słownik, aby zmienić nazwy wybranych kolumn bez wpływania na pozostałe. Nazwy można również zmieniać za pomocą funkcji: df.rename(columns=str.upper) zapisuje wszystkie nazwy kolumn wielkimi literami. Przed scaleniem obiektów DataFrame z różnych źródeł należy zawsze zmienić nazwy kolumn, aby kolumny kluczy były zgodne.
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']Czyszczenie nazw kolumn
Rzeczywiste nazwy kolumn często zawierają spacje, znaki specjalne lub niespójny zapis wielkości liter. Typowym etapem wstępnego przetwarzania jest ich normalizacja: usunięcie białych znaków, zamiana liter na małe oraz zastąpienie spacji podkreśleniami. Dzięki temu kolumny są dostępne za pomocą notacji kropkowej, a problemy z cudzysłowami w zapytaniach w stylu SQL są eliminowane.
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']Wstawianie kolumny w określonym miejscu
df.insert(loc, column, value) wstawia kolumnę na pozycji całkowitej loc, przesuwając pozostałe kolumny w prawo. Jest to przydatne, gdy nowa kolumna ma się znaleźć obok powiązanych kolumn, a nie na końcu. Metoda modyfikuje obiekt DataFrame w miejscu, w przeciwieństwie do 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 90Usuwanie kolumn za pomocą drop()
df.drop(columns=['col1', 'col2']) zwraca nowy obiekt DataFrame bez tych kolumn. Starsza składnia df.drop(['col1', 'col2'], axis=1) również działa, ale jest mniej czytelna. Aby usunąć kolumny w miejscu, należy przekazać inplace=True. W potokach należy preferować zwracanie nowego obiektu DataFrame, aby zachować oryginał do porównania lub ewentualnego przywrócenia.
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']Usuwanie wierszy za pomocą drop()
df.drop(index=['r1', 'r2']) usuwa wiersze na podstawie etykiet. df.drop([0, 2]) usuwa wiersze 0 i 2 z domyślnego indeksu całkowitoliczbowego. Usuwanie wierszy jest często używane do usuwania znanych niepoprawnych rekordów, wartości odstających lub wierszy testowych po oczyszczeniu danych. W przypadku usuwania na podstawie warunku należy preferować indeksowanie boolowskie, aby zachować czytelność kodu.
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 30pop() do usuwania i zwracania kolumny
df.pop('col') usuwa kolumnę z obiektu DataFrame w miejscu i zwraca ją jako serię. Jest to przydatne, gdy trzeba wyodrębnić kolumnę docelową (etykietę) z macierzy cech — kolumna jest usuwana z obiektu DataFrame i przechowywana osobno, aby użyć jej jako zmiennej y w modelu.
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']Zmienianie kolejności kolumn
Aby zmienić kolejność kolumn, należy wybrać je w żądanej kolejności za pomocą df[['col3', 'col1', 'col2']]. W przypadku dużych obiektów DataFrame, gdy trzeba przenieść tylko kilka kolumn, należy programowo obliczyć żądaną kolejność: przenieść kolumny priorytetowe na początek, a pozostałe pozostawić za nimi. Jest to częsty etap przygotowywania raportu przed eksportem do programu 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']Aktualizowanie wartości istniejących kolumn
Aktualizowanie wszystkich wartości istniejącej kolumny korzysta z tej samej składni przypisania co dodawanie nowej kolumny: df['col'] = new_values. Aby zaktualizować tylko wiersze spełniające warunek, należy użyć df.loc[mask, 'col'] = value. Nigdy nie należy używać łańcuchowego indeksowania do aktualizacji — zawsze należy używać .loc, aby uniknąć ostrzeżenia 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]Szybkie sprawdzenie
Sprawdź swoją wiedzę na temat dodawania i usuwania kolumn z tego modułu.
Podsumowanie lekcji
W tej lekcji nauczyłeś się, że: nowe kolumny dodaje się przez przypisanie lub przyjazną łańcuchom metodę assign(), rename() zmienia nazwy kolumn bez modyfikowania danych, a drop() usuwa kolumny lub wiersze i domyślnie zwraca nowy obiekt DataFrame. Następnie użyjemy head(), tail(), info() i describe(), aby szybko utworzyć profil dowolnego obiektu DataFrame.
Często zadawane pytania
Czy lekcja „Dodawanie i usuwanie kolumn” jest bezpłatna?
Tak — pełny tekst „Dodawanie i usuwanie kolumn” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Pandas & NumPy Academy, przejdź na CoddyKit PRO. Kurs Pandas & NumPy Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Dodawanie i usuwanie kolumn”?
Dodawać nowe obliczane kolumny, zmieniać nazwy istniejących oraz usuwać niepotrzebne kolumny lub wiersze za pomocą drop() Ćwiczysz Pandas & NumPy Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Pandas & NumPy Academy?
Nie wymagamy żadnego doświadczenia. Pandas & NumPy Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Dodawanie i usuwanie kolumn”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Pandas & NumPy Academy?
Tak. Każda lekcja Pandas & NumPy Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Tworzenie DataFrame
- Wybieranie kolumn i wierszy
- Dodawanie i usuwanie kolumn
- Podstawowa inspekcja DataFrame