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

如何在Pandas中筛选df2指定列并跳过不存在的列

解决Pandas筛选列时跳过不存在列的问题

直接两步就能搞定:

  1. 先提取目标ID列表,过滤掉df2中不存在的ID
  2. 用过滤后的有效ID提取df2的对应列

具体代码实现:
首先获取法国公司的ID列表:

fr_ids = df1.query("Pays=='FR'")['ID_Societe'].tolist()

然后筛选出df2中实际存在的ID(小数据量用列表推导即可):

valid_ids = [id for id in fr_ids if id in df2.columns]

如果数据量较大,用集合交集的方式效率更高:

valid_ids = list(set(fr_ids) & set(df2.columns))

最后用有效ID提取df2的列:

df2_filtered = df2[valid_ids]

嫌步骤多也可以写成一行:

df2_filtered = df2[[id for id in df1.query("Pays=='FR'")['ID_Societe'] if id in df2.columns]]

这样就只会保留df2中存在的列,不会触发KeyError了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 12:34:49