Jak działa pandas map w języku Python? Przykład zastosowania

Jak działa pandas map w języku Python? Przykład zastosowania
„`html

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 i Series. 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:

  1. Chcesz dokonać prostego przekształcenia wartości w pojedynczej kolumnie.
  2. Masz słownik zamiany wartości w serii.
  3. 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
KajoDataSpace