如何对DataFrame列中字符数超过40的内容进行截断处理
DataFrame列字符串截断实现方案
前置说明
string.lstrip()方法仅用于移除字符串开头的指定字符(默认移除空白符),无法满足截断需求,无需围绕该方法尝试。
实现方法
方法1:直接使用你找到的代码逻辑(简单直观)
你找到的代码是单条字符串的截断逻辑,只需将其封装为函数,通过apply映射到目标列即可:
# 定义截断函数,逻辑和你找到的代码完全一致 def truncate_string(data): return (data[:40] + '..') if len(data) > 40 else data # 假设你的DataFrame变量名为df,目标列名为FirstLineofAddress df['FirstLineofAddress'] = df['FirstLineofAddress'].apply(truncate_string)
方法2:使用Pandas内置字符串方法(性能更高,适合大数据量场景)
无需自定义函数,直接调用Pandas内置的字符串处理接口实现:
import pandas as pd # 长度超过40的字符串截断后拼接..,长度不足的保留原内容 df['FirstLineofAddress'] = df['FirstLineofAddress'].str[:40] + df['FirstLineofAddress'].str.len().gt(40).map({True: '..', False: ''})
处理效果示例
你提供的示例数据处理后结果如下:
| FirstLineofAddress |
|---|
| 00 TheDeathstaristheonlyhomeinthegalaxyf.. |
| 01 Alderaanusedtobemyhomeuntillmofftarki.. |
| 02 Makekashyyykgreatagain |
内容的提问来源于stack exchange,提问作者Mizanur Choudhury
相关产品推荐
相关产品推荐

