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

合并CSV文件代码生成空文件求助:跳过行保留指定列

修正合并指定CSV文件的Python代码

你遇到的问题很典型,我先帮你拆解原代码里的几个关键问题:

  • skiprows参数使用错误:你想要跳过前7行,但skiprows=[1,2,3,4,5,6,7]是跳过第2到第8行(pandas中行号从0开始计数),反而保留了第一行,这会导致后续读取的数据结构混乱;直接用skiprows=7就能准确跳过前7行,写法更简洁。
  • usecols参数匹配错误:你要保留第1、2列,对应pandas的列索引是[0,1],而原代码里的[1,2]会读取第2、3列,完全偏离了你的需求。
  • append方法已被弃用:pandas的append早已不再推荐使用,改用pd.concat合并DataFrame会更稳定、高效。
  • index_col设置不合理:把第二列设为索引可能导致合并时数据丢失或结构异常,建议先不设置索引,后续按需调整。

下面是修正后的完整代码:

import pandas as pd
import glob
import os

# 切换到目标工作目录
os.chdir("L:/FMData/")

# 初始化空列表存储每个文件的DataFrame
df_list = []

# 遍历所有匹配的CSV文件(加上.csv后缀避免匹配非CSV文件)
for file in glob.glob("F5331_FM001*.csv"):
    # 跳过前7行,读取第1、2列(对应索引0和1)
    namedf = pd.read_csv(file, skiprows=7, usecols=[0, 1])
    df_list.append(namedf)

# 合并所有DataFrame,重置索引避免混乱
results = pd.concat(df_list, ignore_index=True)

# 输出到目标文件,禁用索引列避免冗余
results.to_csv('L:/FMData/FM001_D/FM5331_FM001_D.csv', index=False)

额外给你两个实用提示:

  • 如果CSV文件的第8行是表头,不用额外设置参数;如果没有表头,记得加上header=None,防止把第一行数据误识别为表头。
  • 可以在遍历文件时加上打印语句(比如print(f"已读取文件: {file}")),方便你确认哪些文件被成功加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:22:35