You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas DataFrame中提取每行最长字符串并生成新列

提取每行最长字符串到新列的解决方案

假设你拆分后的DataFrame里,每行都是拆分后的名字片段(可能存在空值NaN),下面提供两种实用方法:

方法一:简单直观(适合中小数据集)

用apply逐行处理,结合max函数按长度取最长字符串,同时跳过空值:

# 新增longest_name列,每行取非空字符串中最长的那个
df['longest_name'] = df.apply(lambda row: max(row.dropna(), key=len), axis=1)
  • row.dropna()用来过滤掉每行的空值,避免max函数报错;
  • key=len指定按字符串长度比较大小,直接取长度最大的字符串。

方法二:高效向量化(适合大数据集)

如果数据量很大,apply的逐行处理效率偏低,用向量化操作速度更快:

# 先把空值替换成空字符串,避免计算长度时出错
filled_df = df.fillna('')
# 计算每个单元格字符串的长度
str_lengths = filled_df.applymap(len)
# 找到每行长度最大的列的索引
max_col_pos = str_lengths.idxmax(axis=1)
# 根据索引提取对应的最长字符串
df['longest_name'] = filled_df.values[df.index, max_col_pos]
  • 全程用Pandas向量化操作,比逐行遍历效率高很多;
  • 若一行内有多个长度相同的最长字符串,会取最先出现的那个。

内容的提问来源于stack exchange,提问作者Pravshh040

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 00:35:21