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

如何使用Python基于另一个Excel表过滤目标Excel的行并解决相关报错

错误原因
  • 你搞反了isin()方法的判断逻辑:现有写法是判断df2的skill_set值是否存在于df1的skills列,返回的布尔序列长度和df2的行数一致,和你要索引的df1行数不匹配,所以触发了索引对齐错误。
  • 你的需求是筛选df1中skills列的值存在于df2的skill_set列的行,应该用df1的列作为判断主体,判断它的元素是否在df2的目标列中。
修正后的完整代码
import pandas as pd

file1 = 'emp_list.xlsx'
file2 = 'emp_skills.xlsx'
df1 = pd.read_excel(file1)
df2 = pd.read_excel(file2)

# 先提取df2的skill_set去重后作为判断集合,提升判断效率
target_skills = df2['skill_set'].unique()
filter_df = df1[df1['skills'].isin(target_skills)]
# 输出时加index=False避免把pandas自动生成的行索引写入Excel
filter_df.to_excel('output.xlsx', index=False)
补充说明

如果确认df2的skill_set列没有重复值,可以直接写filter_df = df1[df1['skills'].isin(df2['skill_set'])],效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:18:02