DSM’s suggestion seems to be about the best you’re going to get without doing some manual microoptimization:
%timeit -n 100 df.col1.str.len().max()
100 loops, best of 3: 11.7 ms per loop
%timeit -n 100 df.col1.map(lambda x: len(x)).max()
100 loops, best of 3: 16.4 ms per loop
%timeit -n 100 df.col1.map(len).max()
100 loops, best of 3: 10.1 ms per loop
Note that explicitly using the str.len() method doesn’t seem to be much of an improvement. If you’re not familiar with IPython, which is where that very convenient %timeit syntax comes from, I’d definitely suggest giving it a shot for quick testing of things like this.
Update Added screenshot:
