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

C#中从指定表头名称(name)读取CSV文件的实现方案

Got it, I’ve dealt with this exact problem before—here’s how you can skip those unknown leading rows and start reading your CSV from the header that includes the name column, using two common approaches in Python:

Using Python's Built-in csv Module

This is great if you want a lightweight solution without external dependencies:

import csv

csv_file_path = "your_target_file.csv"

with open(csv_file_path, mode='r', newline='', encoding='utf-8') as file:
    csv_reader = csv.reader(file)
    header = None
    
    # Loop through rows until we find the one containing "name"
    for row in csv_reader:
        # Check if "name" is present in the row (case-sensitive by default)
        if 'name' in row:
            header = row
            break
    
    # Once header is found, process the remaining data rows
    if header:
        # Convert rows to dictionaries for easy column access
        parsed_data = []
        for data_row in csv_reader:
            # Optional: Skip rows that don't match header length to avoid errors
            if len(data_row) == len(header):
                parsed_data.append(dict(zip(header, data_row)))
        
        print("Found header:", header)
        print("Parsed data sample:", parsed_data[:2])  # Print first 2 rows
    else:
        print("Error: No row containing 'name' column found in the CSV.")

Quick Notes:

  • Case Insensitivity: If your header might have Name or NAME instead, modify the check to 'name' in [col.lower() for col in row]
  • Empty Rows: The code automatically skips empty leading rows since they won’t contain the name string
  • Encoding: Adjust the encoding parameter (e.g., gbk for Chinese files) if your CSV uses a non-UTF-8 format
Using Pandas (For Larger Datasets)

If you’re working with bigger files or want to leverage pandas’ data manipulation tools, this approach is cleaner:

import pandas as pd

csv_file_path = "your_target_file.csv"

# First, find the index of the header row with "name"
header_index = None
with open(csv_file_path, mode='r', encoding='utf-8') as file:
    for idx, line in enumerate(file):
        # Check if "name" is in the line (adjust for case if needed)
        if 'name' in line.lower():
            header_index = idx
            break

if header_index is None:
    raise ValueError("No header row with 'name' column found in the file.")

# Read the CSV starting from the identified header row
df = pd.read_csv(csv_file_path, header=header_index)
print("DataFrame preview:")
print(df.head())

Why This Works:

  • Pandas’ read_csv accepts a header parameter that specifies which row to use as the column names
  • We first scan the file to find the exact row index containing name, then pass that index to pandas

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:20:08