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

使用列表选择Pandas DataFrame列时忽略缺失列名的方法

嘿,这个需求我经常碰到,给你俩实用的解决办法,都能轻松实现你要的效果!

首先先把你的示例数据构造出来(注意列表里的列名要加引号,不然会被当成未定义的变量哦):

import pandas as pd

# 构造你描述的DataFrame
df = pd.DataFrame({'A': [1], 'B': [2], 'C': [3], 'X': [4], 'Y': [5], 'Z': [6]}, index=[0])
# 你的目标列列表
target_cols = ['A', 'B', 'C', 'D', 'E', 'F']

方法一:列表推导式筛选

这个方法直观易懂,遍历目标列表,只保留DataFrame中存在的列:

# 筛选出同时存在于目标列表和DataFrame的列
valid_cols = [col for col in target_cols if col in df.columns]
# 提取这些列
result_df = df[valid_cols]

方法二:用Pandas的交集方法(更简洁)

Pandas的列名对象自带intersection方法,可以直接求两个集合的交集,代码更清爽:

# 直接获取目标列表和DataFrame列名的交集
valid_cols = df.columns.intersection(target_cols)
result_df = df[valid_cols]

两种方法运行后,result_df都会是你要的结果:

A  B  C
0  1  2  3

内容的提问来源于stack exchange,提问作者fred.schwartz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 10:52:47