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

Pandas合并CSV时重复浮点值出现多余小数后缀问题

问题原因分析

你的核心问题是CSV文件无表头,但未告知Pandas:

  • Pandas默认将文件第一行解析为列名,而你的数据行里存在重复数值(比如多个0.000),这些重复的"列名"会被Pandas自动重命名为0.000.1、0.000.2格式。
  • 同时你每次循环都用mode='a'追加写入,默认会重复输出表头,进一步导致数据格式混乱。
修复代码
import pandas as pd
import glob
import os

path = "trainingData"
csv_files = glob.glob(os.path.join(path, "*.csv"))

# 控制仅第一次写入时输出表头
first_write = not os.path.exists("allData.csv")

for idx, f in enumerate(csv_files, 1):
    print(f"File: {idx} of {len(csv_files)}")

    # 明确指定无表头,避免将数据行当作列名解析
    df = pd.read_csv(f, lineterminator='\n', delimiter=', ', header=None)
    print(df.head(5))
    
    df.to_csv(
        "allData.csv",
        index=False,
        na_rep="0",
        mode='a',
        lineterminator='\r\n',
        float_format='%.3f',
        sep=', ',  # 匹配输入文件的分隔符,避免格式不一致
        header=first_write
    )
    # 第一次写入后,后续不再输出表头
    first_write = False
关键修复点
  1. header=None:告诉Pandas文件没有表头,自动用数字索引(0、1、2...)作为列名,彻底避免重复列名导致的后缀问题。
  2. 表头控制:通过first_write变量确保仅第一次写入时输出表头,防止表头重复混入数据。
  3. 统一分隔符:写入时指定sep=', ',和读取时的分隔符保持一致,避免输出格式混乱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 20:20:34