
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.
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, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.