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

使用pandas处理CSV文件时如何将数值转为指定格式科学计数法

可行实现方案
  • 方案1:直接在to_csv方法中指定float_format参数(最简便,适用于全表浮点列统一格式的场景)
    默认输出两位指数的科学计数法,修改后的完整函数如下:
import pandas as pd

def convert_file(file, columns, name):
    df = pd.read_csv(file, header=0, delimiter=',')
    df.drop(df.columns[columns], axis=1, inplace=True)
    # %.7e对应保留7位小数的科学计数法,可根据需求调整小数点后位数
    df.to_csv(name, index=False, header=False, float_format='%.7e')
  • 方案2:自定义格式化函数转换(可严格匹配示例中3位指数的输出要求,也支持单独处理指定列)
    如果需要指数部分补前导零到3位、或者仅部分列需要转换格式,可以用如下实现:
import pandas as pd

def format_to_sci(num):
    # 先转成标准科学计数法字符串拆分基数和指数
    base_str, exp_str = "{:.7e}".format(num).split('e')
    # 指数部分补前导零到3位,匹配示例格式
    exp_full = f"{exp_str[0]}{exp_str[1:].zfill(3)}"
    return f"{base_str}e{exp_full}"

def convert_file(file, columns, name):
    df = pd.read_csv(file, header=0, delimiter=',')
    df.drop(df.columns[columns], axis=1, inplace=True)
    # 选取所有数值类型列做转换,也可替换为自定义的列名列表
    num_cols = df.select_dtypes(include='number').columns
    for col in num_cols:
        df[col] = df[col].apply(format_to_sci)
    df.to_csv(name, index=False, header=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:15:02