pandas.DataFrame.applymap — pandas 0.24.0rc1 documentation (original) (raw)

DataFrame. applymap(func)[source]

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.

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