Map
map()
działa tylko na pojedynczej kolumnie (Series). Można używać:
- funkcji
- słownika (do zamiany wartości)
- obiektów typu
str.format
df = pd.DataFrame({'grade': ['A', 'B', 'A', 'C']})
# Mapa zamieniająca litery na liczby
df['grade_num'] = df['grade'].map({'A': 5, 'B': 4, 'C': 3})
# Zastosowanie funkcji
df['grade_upper'] = df['grade'].map(lambda x: x.lower())
Apply
apply()
- Gdy stosowane do Series → działa jak
map()
, ale z większą elastycznością (np. dostęp do wielu kolumn)
- Gdy stosowane do DataFrame → działa na wierszach lub kolumnach
✅ Przykłady dla kolumny:
df['score'] = [10, 20, 30, 40]
df['score_squared'] = df['score'].apply(lambda x: x**2)
✅ Przykład dla całego DataFrame (kolumny):
df[['score', 'score_squared']].apply(np.log1p) # log(1 + x) dla każdej komórki
✅ Przykład dla wierszy:
def row_sum(row):
return row['score'] + row['score_squared']
df['total'] = df.apply(row_sum, axis=1)
Applymap
applymap()
- Stosuje funkcję do każdej pojedynczej komórki w całym DataFrame.
✅ Przykład:
df_numeric = pd.DataFrame([[1, 2], [3, 4]])
df_numeric.applymap(lambda x: x * 10)