pandas.DataFrame.map#

DataFrame.map(функция, na_action=None, **kwargs)[источник]#

Применить функцию к элементам Dataframe поэлементно.

Добавлено в версии 2.1.0: DataFrame.applymap был устаревшим и переименован в DataFrame.map.

Этот метод применяет функцию, которая принимает и возвращает скаляр, к каждому элементу DataFrame.

Параметры:
функцияcallable

Функция Python, возвращает одно значение из одного значения.

na_action{None, ‘ignore’}, по умолчанию None

Если 'ignore', распространять значения NaN, не передавая их в func.

**kwargs

Дополнительные ключевые аргументы для передачи в качестве аргументов ключевых слов в функция.

Возвращает:
DataFrame

Преобразованный DataFrame.

Смотрите также

DataFrame.apply

Применить функцию вдоль входной оси DataFrame.

DataFrame.replace

Заменить значения, указанные в to_replace с значение.

Series.map

Применить функцию поэлементно к Series.

Примеры

>>> df = pd.DataFrame([[1, 2.12], [3.356, 4.567]])
>>> df
       0      1
0  1.000  2.120
1  3.356  4.567
>>> df.map(lambda x: len(str(x)))
   0  1
0  3  4
1  5  5

Как и Series.map, значения NA можно игнорировать:

>>> df_copy = df.copy()
>>> df_copy.iloc[0, 0] = pd.NA
>>> df_copy.map(lambda x: len(str(x)), na_action='ignore')
     0  1
0  NaN  4
1  5.0  5

Также возможно использовать map GH 10214 lambda функции:

>>> df.map(round, ndigits=1)
     0    1
0  1.0  2.1
1  3.4  4.6

Обратите внимание, что векторизованная версия функция часто существует, что будет значительно быстрее. Вы можете возвести каждый элемент в квадрат поэлементно.

>>> df.map(lambda x: x**2)
           0          1
0   1.000000   4.494400
1  11.262736  20.857489

Но в этом случае лучше избегать map.

>>> df ** 2
           0          1
0   1.000000   4.494400
1  11.262736  20.857489