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

pandas字符串列按XX.XX.XX数字格式左对齐补全实现方法

pandas字符串列补全为三段式数字格式实现方案

核心逻辑:对目标字符串列按.拆分分段,先将每段末尾补0对齐到2位长度,再在分段列表末尾补00凑够3段,最后用.重新拼接即可。该方法基于pandas向量化接口实现,即使是百万行级别的大数据集也能快速跑完。

实现代码

首先构造测试数据验证逻辑:

import pandas as pd

# 构造示例数据集
df = pd.DataFrame({
    'target_col': ['72.1', '61', '25.73.20', '33.12']
})

核心处理代码:

# 可选前置清洗:如果列里存在非数字、非小数点的乱码字符,先执行这步去除
df['target_col'] = df['target_col'].str.replace(r'[^\d.]', '', regex=True)

df['formatted_col'] = (
    df['target_col']
    .str.split('.')  # 按小数点拆分成分段列表
    .apply(lambda seg_list: [seg.ljust(2, '0') for seg in seg_list])  # 现有每段补0到2位
    .apply(lambda seg_list: seg_list + ['00'] * (3 - len(seg_list)))  # 缺几段补几个'00'
    .str.join('.')  # 用小数点重新拼接为字符串
)

结果验证

执行后打印df['formatted_col'],输出完全匹配目标格式:

0    72.10.00
1    61.00.00
2    25.73.20
3    33.12.00
Name: formatted_col, dtype: object

边界情况说明

  • 如果某段原始长度超过2位(比如出现123.4.5这类值),代码会保留原有长度不做截断,如果需要强制截断可以把ljust逻辑改成seg[:2].ljust(2, '0')
  • 如果原始值是空值/NaN,可以在处理前先填充为默认值(比如0.0.0)避免报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 14:48:23