
W pracy z biblioteką pandas w języku Python często zachodzi potrzeba przekształcenia wartości w kolumnie DataFrame’a. Jedną z najprostszych metod do tego celu jest funkcja map(). Dzięki niej możemy w wygodny sposób modyfikować wartości przy użyciu funkcji, słownika zamiany lub nawet prostego lambda. W tym artykule wyjaśnię, jak działa pandas map(), oraz pokażę praktyczne przykłady zastosowania.
Co to jest pandas.map()?
Funkcja map() dostępna jest dla obiektów pd.Series. Oznacza to, że możemy używać jej wyłącznie na pojedynczych kolumnach naszego DataFrame’a. Główne zastosowanie tej metody to:
- przekształcanie wartości za pomocą funkcji,
- zamiana wartości na podstawie słownika (mapowania),
- korzystanie z obiektów lambda w celu szybkiej modyfikacji danych.
Pandas map() zwraca nową serię, co oznacza, że do zmiany wartości w oryginalnym obiekcie trzeba przypisać wynik do tej samej lub nowej kolumny.
Jak używać pandas.map()?
Jeśli chcemy użyć map(), możemy to zrobić na trzy sposoby.
1. Mapowanie poprzez funkcję
Najprostszą metodą zastosowania map() jest przekazanie funkcji, która modyfikuje każdy element w serii:
import pandas as pd
# Tworzymy przykładowy DataFrame
df = pd.DataFrame({
'liczby': [1, 2, 3, 4, 5]
})
# Funkcja podnosząca każdą liczbę do kwadratu
df['kwadraty'] = df['liczby'].map(lambda x: x ** 2)
print(df)
Wynik:
| liczby | kwadraty |
|---|---|
| 1 | 1 |
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
| 5 | 25 |
2. Zamiana wartości na podstawie słownika
Za pomocą słownika możemy zmieniać konkretne wartości w kolumnie. Jeśli klucz nie istnieje, wstawiona zostanie wartość NaN.
df = pd.DataFrame({
'ocena': [1, 2, 3, 4, 5]
})
zamiana = {
1: 'niedostateczny',
2: 'mierny',
3: 'dostateczny',
4: 'dobry',
5: 'bardzo dobry'
}
df['opis'] = df['ocena'].map(zamiana)
print(df)
Rezultat:
| ocena | opis |
|---|---|
| 1 | niedostateczny |
| 2 | mierny |
| 3 | dostateczny |
| 4 | dobry |
| 5 | bardzo dobry |
3. Użycie funkcji zdefiniowanej wcześniej
Zamiast przekazywać funkcję bezpośrednio w map(), możemy użyć wcześniej zdefiniowanej funkcji:
def podwoj(x):
return x * 2
df['podwojone'] = df['liczby'].map(podwoj)
print(df)
Powyższy kod pomnoży każdą wartość w kolumnie liczby przez 2.
Różnice między map(), apply() i replace()
Gdy pracujemy z pandas, łatwo pomylić map() z innymi podobnymi metodami, takimi jak apply() i replace(). Oto kluczowe różnice:
- map() – działa tylko na pojedynczej kolumnie (czyli obiekcie
Series), nadaje się do prostych operacji. - apply() – może być używane zarówno na
DataFrame, jak iSeries. Daje większą elastyczność np. użycie funkcji na całym wierszu. - replace() – służy do zastępowania wartości w kolumnie, ale nie pozwala na zastosowanie funkcji.
Kiedy warto używać map()?
Pandas map() jest świetnym narzędziem, jeśli:
- Chcesz dokonać prostego przekształcenia wartości w pojedynczej kolumnie.
- Masz słownik zamiany wartości w serii.
- Potrzebujesz szybko zastosować funkcję do każdej wartości w serii.
Jeśli jednak chcesz modyfikować wiele kolumn jednocześnie, lepszym wyborem może być apply(). Z kolei jeśli celem jest prosta zamiana wartości bez logiki przekształcania, replace() może być bardziej efektywne.
Podsumowanie
Omówiłem sposób działania pandas map() i pokazałem trzy różne zastosowania tej funkcji. Jest to niezwykle przydatne narzędzie do operowania na pojedynczych kolumnach w DataFrame’ach, szczególnie jeśli chcemy przeprowadzić transformację wartości w prosty i szybki sposób.
Jeżeli pracujesz z danymi w pandas, zdecydowanie warto mieć map() w swoim arsenale narzędzi. Mam nadzieję, że przedstawione przykłady pomogły w zrozumieniu tej funkcji oraz jej zastosowania w codziennej pracy z danymi.
Inny ciekawy artykuł:
Jak działa pandas apply w języku Python? Przykład zastosowania
Opanuj analizę danych w Pythonie z moim kursem!
Opanujesz podstawy programowania w Pythonie, w tym typy danych, zmienne, listy, słowniki, funkcje oraz obsługę błędów. Nauczysz się korzystać z biblioteki pandas do zaawansowanej analizy danych i pracy z różnymi rodzajami danych. Zrozumiesz proces analizy, eksploracji (EDA) i wizualizacji. Tworzenie własnych funkcji przygotuje Cię do rozmów kwalifikacyjnych i rozwiązywania rzeczywistych problemów biznesowych.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, PowerBI, Tableau i Pythona z certyfikatami!
🟨 Ekskluzywana ale pomagająca sobie społeczność.
🟩 Ponad 75 godzin materiałów video.
🟨 Spotkania LIVE co miesiąc.
🟩 Mój osobisty mentoring.

