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

如何使用Python的Pandas向CSV文件追加列标题与列值

解决CSV添加新列时额外生成表头行的问题

你的问题出在使用names=fields参数读取已有表头的CSV文件,这会让pandas把原文件的表头行当成普通数据行,同时将fields作为新表头写入,最终导致多出一行表头。

修正步骤:

  1. 读取CSV时不指定names参数,让pandas自动识别原文件的表头;
  2. 添加TIMESTAMP列并赋值;
  3. 保存时设置index=False,避免写入冗余的索引列。

修正后的代码:

import os
import pandas as pd
from datetime import datetime

path = "//wherever"
dir_list = os.listdir(path)

for filename in dir_list:
    file_path = os.path.join(path, filename)  # 用os.path.join适配不同系统路径,更安全
    # 从文件名提取时间
    time_raw = filename.split("_")
    time_compressed = time_raw[1]
    timestamp = datetime.strptime(time_compressed, "%Y%m%dT%H%MZ")
    
    # 读取原CSV,自动识别表头
    df = pd.read_csv(file_path, encoding="cp1252", low_memory=True)
    # 添加新列
    df['TIMESTAMP'] = timestamp
    # 保存时不写索引,保留正确表头
    df.to_csv(file_path, index=False)

关键修改说明:

  • 移除names=fields:原CSV已有Field1/Field2/Field3表头,无需手动指定,否则会覆盖原表头并产生重复行;
  • 使用os.path.join拼接路径:避免手动拼接路径时出现的系统兼容性问题;
  • 添加index=False:防止pandas把默认的数字索引写入CSV文件,保持数据整洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 08:25:15