如何使用Pandas截断DataFrame指定列的过长字符串而非删除整行
错误原因
你使用的代码是Pandas行过滤语法:df[布尔表达式] 仅会保留表达式返回True的行,因此长度超过15的行直接被删除,没有对目标列的字符串内容做修改。
实现字符串截断的方法
直接使用Pandas内置的字符串处理方法即可,性能优于自定义遍历逻辑:
# 将目标列转为字符串类型后截取前15个字符,重新赋值给原列 df['test_column'] = df['test_column'].astype(str).str[:15]
如果需要保留原空值(NaN)不被转为字符串nan,可以使用带空值判断的写法:
import pandas as pd df['test_column'] = df['test_column'].apply(lambda x: str(x)[:15] if pd.notna(x) else x)
处理后长度不足15的字符串会保留原内容,不会补位或报错,符合需求。
内容的提问来源于stack exchange,提问作者scofx
相关产品推荐
相关产品推荐

