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

如何使用pandas或numpy从CSV文件提取符合条件的指定列并删除冗余列

优先使用pandas实现,操作更简洁,以下是不同场景的可用语法:

场景1:读取CSV时直接筛选列(性能最优,无需加载冗余数据)

如果提前明确要保留的列名,读文件时直接指定usecols参数,无需后续删除操作:

import pandas as pd

# 仅加载指定的列
df = pd.read_csv("你的文件路径.csv", usecols=["user_id", "pay_amount", "create_time"])

如果需要先判断列是否符合条件(比如列中存在特定匹配值)再筛选,可先采样判断再加载全量:

# 大文件可先读取前N行采样,判断符合条件的列
sample_df = pd.read_csv("你的文件路径.csv", nrows=100)
# 示例条件:筛选所有包含值为"已完成"的列
keep_cols = [col for col in sample_df.columns if "已完成" in sample_df[col].values]
# 再次读取全量数据时仅加载符合条件的列
df = pd.read_csv("你的文件路径.csv", usecols=keep_cols)

场景2:已加载全量数据,批量筛选/删除列

如果已经加载了完整的DataFrame,直接通过列列表批量操作即可,无需逐个删除列:

# 示例1:保留列名包含"order"的所有列
df = df.filter(regex="order")

# 示例2:保留符合自定义条件的列
keep_cols = [col for col in df.columns if df[col].nunique() > 5] # 仅保留唯一值大于5的列
df = df[keep_cols]

# 示例3:批量删除指定冗余列
drop_cols = ["冗余列1", "冗余列2", "冗余列3"]
df = df.drop(columns=drop_cols)

numpy处理结构化CSV的逻辑和上述思路一致,但pandas对表格类数据的操作封装更成熟,更推荐使用pandas方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:45:06