Метод map
Метод map применяется к DataFrame
и применяет переданную функцию к каждому отдельному элементу таблицы.
Первым параметром передаётся вызываемый объект (функция) или отображение (словарь, Series).
Метод возвращает новый DataFrame с преобразованными значениями.
Синтаксис
df.map(func)
Пример
Применим к каждому элементу таблицы лямбда-функцию, которая умножает значение на 2:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
res = df.map(lambda x: x * 2)
print(res)
Результат выполнения кода:
a b
0 2 20
1 4 40
2 6 60
3 8 80
4 10 100
Пример
Передадим в метод словарь для замены значений по всему DataFrame:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
mapping = {1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five',
10: 'ten', 20: 'twenty', 30: 'thirty', 40: 'forty', 50: 'fifty'}
res = df.map(mapping)
print(res)
Результат выполнения кода:
a b
0 one ten
1 two twenty
2 three thirty
3 four forty
4 five fifty
Пример
В качестве аргумента можно передать Series, который будет использоваться как отображение:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
ser_mapping = pd.Series(['a', 'b', 'c', 'd', 'e'], index=[1, 2, 3, 4, 5])
res = df.map(ser_mapping)
print(res)
Результат выполнения кода:
a b
0 a NaN
1 b NaN
2 c NaN
3 d NaN
4 e NaN
Пример
Метод map можно использовать для преобразования типов данных всех элементов:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10.5, 20.7, 30.2, 40.9, 50.1]
})
res = df.map(lambda x: str(x))
print(res)
Результат выполнения кода:
a b
0 '1' '10.5'
1 '2' '20.7'
2 '3' '30.2'
3 '4' '40.9'
4 '5' '50.1'