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

如何用apply和lambda逐行截断Pandas中Tag列的字符串?

问题描述

现有如下Pandas DataFrame:

import pandas as pd

# initialize list of lists
data = [['1', "Tag1, Tag323, Tag36"], ['2', "Tag11, Tag212"], ['4', "Tag1, Tag12, Tag3, Tag324"]]
 
# Create the pandas DataFrame
df = pd.DataFrame(data, columns = ['ID', 'Tag'])

原始输出:

ID  Tag
0   1   Tag1, Tag323, Tag36
1   2   Tag11, Tag212
2   4   Tag1, Tag12, Tag3, Tag324

需求:对Tag列的字符串进行处理——若每行标签数量超过2个,输出格式为"Tag1, Tag2 ..";若不超过2个则保留原内容。要求用Pandas的apply和lambda方法实现。

实现代码

可以通过apply结合lambda函数,对Tag列的每个字符串进行拆分、判断长度后重新拼接:

df['Tag'] = df['Tag'].apply(lambda x: ', '.join(x.split(', ')[:2]) + ' ..' if len(x.split(', ')) > 2 else x)

处理后的DataFrame输出:

ID             Tag
0   1  Tag1, Tag323 ..
1   2    Tag11, Tag212
2   4  Tag1, Tag12 ..
代码说明
  • x.split(', '):将标签字符串按, 拆分成列表,方便统计标签数量和提取前两个标签
  • len(x.split(', ')) > 2:判断当前行的标签数量是否超过2个
  • 若满足条件:用', '.join()拼接前两个标签,再追加' ..'
  • 若不满足条件:直接返回原字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:45:35