# pandas.DataFrame.applymap

`DataFrame.``applymap`(func)

  Apply a function to a Dataframe elementwise.

  This method applies a function that accepts and returns a scalar to every element of a DataFrame.

  Parameters:

  func : callable

  > Python function, returns a single value from a single value.

  Returns:

  DataFrame

  > Transformed DataFrame.

  See also

  `DataFrame.apply`
    Apply a function along input axis of DataFrame.

  Notes

  In the current implementation applymap calls func twice on the first column/row to decide whether it can take a fast or slow code path. This can lead to unexpected behavior if func has side-effects, as they will take effect twice for the first column/row.

  Examples

      >>> df = pd.DataFrame([[1, 2.12], [3.356, 4.567]])
      >>> df
             0      1
      0  1.000  2.120
      1  3.356  4.567

      >>> df.applymap(lambda x: len(str(x)))
         0  1
      0  3  4
      1  5  5

  Note that a vectorized version of func often exists, which will be much faster. You could square each number elementwise.

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

  But it’s better to avoid applymap in that case.

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

Scroll To Top