pandas.DataFrame.map
- DataFrame.map(func, na_action=None, **kwargs)[source]
-
Применение функции к элементам Dataframe попарно.
Введено в версии 2.1.0: DataFrame.applymap был устарел и переименован в DataFrame.map.
Этот метод применяет функцию, которая принимает и возвращает скалярное значение, к каждому элементу Dataframe.
- Параметры:
-
- func:callable
-
Функция Python, возвращающая одно значение из одного значения.
- na_action:{None, ‘ignore’}, по умолчанию None
-
Если ‘ignore’, пропускать значения NaN, не передавая их в func.
- **kwargs
-
Дополнительные ключевые аргументы для передачи как ключевых аргументов функции func.
- Возвращает:
-
- DataFrame
-
Преобразованный DataFrame.
См. также
DataFrame.apply-
Применение функции вдоль оси входного DataFrame.
DataFrame.replace-
Замена значений, указанных в to_replace, на value.
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 с функциями, которые не являются lambda функциями:
>>> df.map(round, ndigits=1) 0 1 0 1.0 2.1 1 3.4 4.6Обратите внимание, что часто существует векторизованный вариант func, который будет намного быстрее. Вы можете возвести в квадрат каждое число попарно.
>>> 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
© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.2.2/reference/api/pandas.DataFrame.map.html