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

如何移除字典中不在DataFrame列名内的键?

移除字典中与DataFrame列名不匹配的键

方法一:生成新字典(推荐)

直接通过字典推导式筛选出键存在于DataFrame列名中的项,这种方式不会修改原字典,避免意外影响其他逻辑:

import pandas as pd

filename='template'
data= [['','','','','','','','Auto','','','','','']]
df= pd.DataFrame(data,columns=['first','last','state','lang','country','company','email','industry',
                                'System_Type__c','AccountType','segment','existing','permission'])

valid= {'industry': ['Automotive'],
        'SME Vertical': ['Agriculture'],
        'System_Type__c': ['Access'],
        'AccountType': ['Commercial']}

# 获取DataFrame的列名列表
col_list = list(df.columns)
# 生成只包含有效键的新字典
valid_cleaned = {k: v for k, v in valid.items() if k in col_list}

print(valid_cleaned)

输出结果:

{'industry': ['Automotive'], 'System_Type__c': ['Access'], 'AccountType': ['Commercial']}

方法二:原地删除无效键

如果不需要保留原字典,可以先收集所有需要删除的键,再逐个删除:

使用del关键字

# 收集所有不在列名中的键
keys_to_remove = [k for k in valid if k not in col_list]
# 逐个删除
for k in keys_to_remove:
    del valid[k]

print(valid)

使用pop()方法

pop()可以在删除时返回对应的值,若键不存在还能指定默认值避免报错(这里因为已经确认键存在,可省略默认值):

for k in keys_to_remove:
    valid.pop(k)

print(valid)

两种原地删除方法最终都会将原valid字典修改为你需要的结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 17:55:20