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

如何用Pandas动态读取CSV:定位START-DATA后设表头与|分隔符

解决方法

一、拆分已读取的单列数据

你当前得到的单列DataFrame,可以用字符串拆分方法按|分割成多列,同时处理分隔符前后的空格:

# 用正则匹配带空格的|,拆分列并展开为多列
df_split = df_2[0].str.split(r'\s*\|\s*', expand=True)
# 将第一行设为表头
df_split.columns = df_split.iloc[0]
# 移除表头行并重置索引
df_final = df_split.drop(df_split.index[0]).reset_index(drop=True)

二、批量读取这类文件的高效方法

不需要先读取整个文件再处理,直接定位每个文件中START-DATA的位置,精准读取数据效率更高:

1. 单个文件处理函数

import pandas as pd

def load_custom_csv(file_path):
    # 逐行遍历文件,找到START-DATA的行号
    with open(file_path, 'r') as f:
        start_row = None
        for line_num, line in enumerate(f):
            if line.strip() == 'START-DATA':
                start_row = line_num + 1  # 下一行是表头,作为读取起始行
                break
    # 读取数据,skipinitialspace=True自动忽略分隔符前后的空格
    return pd.read_csv(
        file_path,
        skiprows=start_row,
        delimiter='|',
        skipinitialspace=True
    )

2. 批量读取并合并

import os

# 替换为你的CSV文件所在文件夹路径
target_folder = "你的文件夹路径"
all_dfs = []

# 遍历文件夹下所有CSV文件
for filename in os.listdir(target_folder):
    if filename.lower().endswith('.csv'):
        full_path = os.path.join(target_folder, filename)
        df = load_custom_csv(full_path)
        all_dfs.append(df)

# 合并所有数据(按需选择)
merged_df = pd.concat(all_dfs, ignore_index=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 22:25:23