首页 > 解决方案 > 如何使用python根据另一个excel表过滤一个excel中的行?

问题描述

我有两张excel表:

Excel1:emp_list.xlsx

emp_name 角色 地点 技能
emp1 顾问 波士顿 Python
emp2 经理 波士顿 Python
emp3 联系 北卡罗来纳 爪哇
emp4 分析师 哈德逊 Python

Excel2:emp_skills.xlsx

技能
Python
Python
Python

我正在尝试过滤excel1其中提到的技能的行,excel2并将过滤后的行写入另一个输出 excel。

import pandas as pd

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

filter_df=df1.loc[(df2['skill_set'].isin(df1['skills']))]
filter_df.to_excel('output.xlsx')

上面的代码给出了错误:

IndexingError: Unalignable boolean series provided as indexer(index of the 
               boolean series and of the indexed object do not match)

谁可以帮我这个事?

标签: pythonexcelpandas

解决方案


这是问题需要测试列,来自df1如下df2

filter_df=df1.loc[(df1['skill_set'].isin(df2['skills']))]

推荐阅读