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

如何用Python处理CSV:跳过START-OF-DATA前的行并添加表头

解决CSV跳过指定行前内容并导入DataFrame的方法

以下是几种实现需求的Python方案,可直接从START-OF-DATA行的下一行读取数据并添加自定义表头:

方法1:先定位起始行再读取

先遍历文件找到标记行的位置,再精准读取有效数据:

import pandas as pd

csv_path = "你的CSV文件路径.csv"
start_marker = "START-OF-DATA"
skip_count = 0

# 遍历文件统计需要跳过的行数
with open(csv_path, 'r', encoding='utf-8') as f:
    for line in f:
        if start_marker in line:
            break
        skip_count += 1

# 从标记行的下一行开始读取,同时设置自定义表头
custom_header = ["列名1", "列名2", "列名3"]  # 替换为你的实际表头
df = pd.read_csv(csv_path, skiprows=skip_count + 1, names=custom_header)

方法2:用生成器过滤有效行

通过生成器直接跳过无效内容,只传递有效数据给pandas:

import pandas as pd

csv_path = "你的CSV文件路径.csv"
start_marker = "START-OF-DATA"
custom_header = ["列名1", "列名2", "列名3"]

def get_valid_rows(file_path, marker):
    with open(file_path, 'r', encoding='utf-8') as f:
        # 跳过标记行之前的所有内容
        for line in f:
            if marker in line:
                break
        # 输出剩下的所有有效行
        yield from f

# 读取过滤后的内容到DataFrame
df = pd.read_csv(get_valid_rows(csv_path, start_marker), names=custom_header)

方法3:全量导入后截取有效部分

若你偏好先导入全部内容再处理,可按以下方式操作:

import pandas as pd

csv_path = "你的CSV文件路径.csv"
start_marker = "START-OF-DATA"
custom_header = ["列名1", "列名2", "列名3"]

# 先全量读取所有内容(无表头)
raw_df = pd.read_csv(csv_path, header=None)
# 定位标记行的索引
marker_row_idx = raw_df[raw_df[0].str.contains(start_marker, na=False)].index[0]
# 截取标记行之后的内容并设置表头
df = raw_df.iloc[marker_row_idx + 1:].reset_index(drop=True)
df.columns = custom_header

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 12:00:10