如何从Pandas Series中提取前10个以逗号分隔的单词
Pandas处理逗号分隔列保留前10个元素的优雅方案
直接用Pandas内置的矢量化字符串方法就能解决,比循环或者lambda更高效稳定,代码也简洁:
# 替换成你的目标列名即可 df['目标列名'] = df['目标列名'].str.split(',').str[:10].str.join(',')
代码说明:
str.split(','):将每个单元格的字符串按逗号分割成列表str[:10]:提取每个列表的前10个元素(如果某行不足10个单词,会自动保留全部内容)str.join(','):把筛选后的列表重新用逗号拼接成字符串
如果一定要用lambda写法(更推荐上面的矢量化方法),可以用apply配合lambda实现:
df['目标列名'] = df['目标列名'].apply(lambda x: ','.join(x.split(',')[:10]))
额外处理:如果单词间带空格
如果你的数据是类似"苹果, 香蕉, 橙子"这种带空格的格式,分割后可以先清理每个元素的空格:
df['目标列名'] = df['目标列名'].str.split(',') \ .str[:10] \ .apply(lambda lst: ', '.join([s.strip() for s in lst]))
这样处理后,结果会变成"苹果, 香蕉, 橙子..."这种规范的格式。
内容的提问来源于stack exchange,提问作者Lunero
相关产品推荐
相关产品推荐

