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

如何读取列名与指定列表近似匹配而非完全一致的CSV文件

按列名近似匹配读取CSV指定列的实现方法

pandas的usecols参数除了传入精确列名列表外,支持传入可调用的匹配函数,你可以直接把近似匹配规则写在函数中传入,不需要读取全量列后再过滤,效率更高。

方法1:直接传入匹配函数(推荐,内存占用最低)

直接在读取CSV时通过usecols传入匹配规则,读取阶段就自动过滤非目标列:

import pandas as pd

# 你需要匹配的列前缀列表
columns_to_read = ["A", "C", "E"]

df = pd.read_csv(
    "替换为你的CSV文件路径.csv",
    # 匹配规则:列名以 目标前缀+双下划线 开头即判定为匹配
    usecols=lambda col_name: any(col_name.startswith(f"{prefix}__") for prefix in columns_to_read)
)

如果你的匹配规则不是前缀匹配,只需修改lambda中的判断逻辑即可:比如要匹配列名包含目标字符串,将startswith改为__contains__即可。

方法2:先匹配表头再读取(适合需要校验匹配结果的场景)

如果你需要先确认匹配到的列是否符合预期,可以先只读表头完成匹配,再用匹配到的精确列名读取数据:

import pandas as pd

columns_to_read = ["A", "C", "E"]
# 仅读取表头行,不加载任何数据
all_columns = pd.read_csv("替换为你的CSV文件路径.csv", nrows=0).columns.tolist()
# 匹配得到精确列名列表
matched_columns = [
    col for col in all_columns 
    if any(col.startswith(f"{prefix}__") for prefix in columns_to_read)
]
# 按需打印校验匹配结果
# print(matched_columns)

# 读取目标列
df = pd.read_csv("替换为你的CSV文件路径.csv", usecols=matched_columns)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:48:03