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

如何标准化Pandas DataFrame各行中长度不一的字符串?

没问题,我来帮你搞定这个字符串标准化的需求!你想要把pattern列里的所有字符串统一到最长的8位长度对吧?这里有几种实用的方法,根据你的填充需求来选:

首先,动态获取最长字符串长度(更通用)

不用硬编码8,我们可以先计算pattern列的最大长度,这样后续数据变化也不用修改代码:

max_length = df['pattern'].str.len().max()  # 这里结果是8

方法1:右侧填充(默认用空格,让字符串左对齐)

这是最常用的场景,把短字符串右边补空格到最长长度:

df['pattern_standardized'] = df['pattern'].str.pad(width=max_length, side='right')
# 或者用更直观的str.ljust方法
df['pattern_standardized'] = df['pattern'].str.ljust(max_length)

处理后的结果:

ID    pattern pattern_standardized
0  first  AAABCDEE          AAABCDEE
1 second   ABBBBD           ABBBBD  
2  third    CCCDE            CCCDE   
3 fourth       AA              AA    
4  fifth    ABCDE            ABCDE   

方法2:左侧填充(比如用0或特定字符,让字符串右对齐)

如果需要把短字符串左边补全,比如补0或者其他符号:

# 用0填充左侧
df['pattern_standardized'] = df['pattern'].str.pad(width=max_length, side='left', fillchar='0')
# 等价于str.rjust方法
df['pattern_standardized'] = df['pattern'].str.rjust(max_length, fillchar='0')

处理后的结果:

ID    pattern pattern_standardized
0  first  AAABCDEE          AAABCDEE
1 second   ABBBBD          00ABBBBD
2  third    CCCDE          000CCCDE
3 fourth       AA          000000AA
4  fifth    ABCDE          000ABCDE

方法3:居中填充(两侧补特定字符)

如果需要让字符串居中,两侧补统一字符:

# 用'-'填充两侧
df['pattern_standardized'] = df['pattern'].str.pad(width=max_length, side='both', fillchar='-')
# 等价于str.center方法
df['pattern_standardized'] = df['pattern'].str.center(max_length, fillchar='-')

处理后的结果:

ID    pattern pattern_standardized
0  first  AAABCDEE          AAABCDEE
1 second   ABBBBD          -ABBBBD-
2  third    CCCDE          --CCCDE-
3 fourth       AA          ---AA---
4  fifth    ABCDE          --ABCDE-

如果你的“标准化”是指截断过长字符串(不过这里最长的就是第一行,其他都更短),可以用str.slice(0, max_length),不过看起来你的场景是补全到最长长度~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:49:50