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

如何将谷歌表格JS数字格式化功能迁移到Python pandas脚本

实现Pandas读取工作表并格式化数字字符串的方案

需要将无标点的长数字字符串(如12345678901234567890)按照前7位-接下来2位.接下来4位.接下来1位.接下来2位.剩余部分的规则格式化,最终输出1234567-89.0123.4.56.7890格式的结果。

核心格式化逻辑(对应原JS逻辑转Python)

Python的字符串切片语法和JS的slice行为一致,可以直接实现相同的拆分规则:

def format_number(s):
    # 先转换为字符串,避免数字类型无法切片
    s_str = str(s)
    # 可选:校验输入长度,避免切片越界报错
    if len(s_str) < 17:
        return s_str  # 长度不足时返回原内容,也可改为抛出ValueError提示无效输入
    # 按规则拼接格式化后的字符串
    return f"{s_str[:7]}-{s_str[7:9]}.{s_str[9:13]}.{s_str[13:14]}.{s_str[14:16]}.{s_str[16:]}"

嵌入Pandas读取工作表的完整脚本

假设工作表中有一列名为raw_number的列需要处理,完整代码示例:

import pandas as pd

def format_number(s):
    s_str = str(s)
    if len(s_str) < 17:
        return s_str
    return f"{s_str[:7]}-{s_str[7:9]}.{s_str[9:13]}.{s_str[13:14]}.{s_str[14:16]}.{s_str[16:]}"

# 读取工作表(Excel用read_excel,CSV用read_csv)
df = pd.read_excel("你的文件路径.xlsx")

# 对目标列应用格式化函数,生成新列
df["formatted_number"] = df["raw_number"].apply(format_number)

# 可选:将处理后的结果保存到新文件
df.to_excel("格式化后的文件.xlsx", index=False)

补充说明

  • 如果处理的是CSV文件,将pd.read_excel替换为pd.read_csv即可。
  • 若需要批量处理多个列,可通过循环遍历列名重复apply步骤。
  • 长度校验逻辑可根据实际需求调整,比如对不符合长度要求的输入抛出明确异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 13:25:17