使用pandas read_csv读取文件时如何筛选以特定字符开头的列
使用pandas读取大CSV时筛选指定前缀列的方案
你可以通过两种方式实现需求,两种方式都不会加载全量400列的数据,适配大文件场景:
方式1:分两步操作(逻辑更清晰)
先只读表头筛选出符合要求的列,再只加载对应列的内容:
import pandas as pd # 仅读取表头行,不加载任何业务数据 df_header = pd.read_csv("你的文件路径.csv", nrows=0) # 筛选所有以'A'或'X'开头的列,无需提前知道列的数量 target_cols = [col for col in df_header.columns if col.startswith(('A', 'X'))] # 仅加载目标列的数据 df = pd.read_csv("你的文件路径.csv", usecols=target_cols)
方式2:一行式精简写法
直接给usecols参数传入lambda函数,pandas会自动完成列筛选:
import pandas as pd df = pd.read_csv("你的文件路径.csv", usecols=lambda col: col.startswith(('A', 'X')))
补充说明
- 你给出的示例列运行上述代码后,会自动筛选出
['A_1', 'A_2', 'X_1', 'X_2'],完全匹配需求 - 如果需要忽略大小写匹配(同时匹配a/A、x/X开头的列),可以把筛选条件改成
col.upper().startswith(('A', 'X'))
内容的提问来源于stack exchange,提问作者Yana
相关产品推荐
相关产品推荐

