← All questions
Python & DataEasy· Pandas for ML

What's the difference between apply(), map(), and apply...

map() is Series-only, meant for simple element-wise substitutions — swapping category codes for readable labels, say. apply() works on both Series and DataFrames; on a DataFrame it runs column-wise with axis=0 or row-wise with axis=1, which makes it the most versatile of the three but also the easiest to reach for by default. applymap() (now folded into .map() on a DataFrame) applies a function to every cell independently, which is handy for something like bulk type casting across a whole table.

The detail that actually matters in production code is performance: apply() runs your Python function row by row, which is typically 10-100x slower than an equivalent vectorized operation, because it can’t use Pandas’ underlying C implementation. df['tax'] = df['salary'].apply(lambda x: x * 0.3) should almost always just be df['salary'] * 0.3. apply() earns its place only when the logic genuinely can’t be vectorized.

Code playground (Python)