pandas:如何比较dataframe两列(类型:字符串)取字符串长的值做为新列的值?

 如下代码可以简单实现“取字符串长的值做为新列的值”功能。但是效率非常低下。求助更好更有效率的实现方法。谢谢

#比较两列,取字符串长的值作为新列的值

pd['名字'] = pd.apply(
    lambda row : 
        row['old名字'] if len(str(row['old名字'])) > len(str(row['new名字']))
        else row['new名字'] 
)

 

用apply比较慢