Python 从excel页面获取员工详细信息

Python 从excel页面获取员工详细信息,python,pandas,spyder,Python,Pandas,Spyder,我有一张excel表格,a列中只包含“员工id”,如下所示 1677 5597 5623 5618 Empid Name Location JobTitle Email-id Department 1677 Umesh Gadag ASE abc@gmail.com Civil Empid Name Location JobTitle Email-id Department 1677

我有一张excel表格,a列中只包含“员工id”,如下所示

1677
5597
5623
5618
Empid   Name    Location    JobTitle    Email-id     Department
1677    Umesh     Gadag      ASE      abc@gmail.com    Civil
Empid   Name    Location    JobTitle    Email-id      Department
1677    Umesh     Gadag      ASE      abc@gmail.com     Civil
5597    Suresh    Udupi      ASE      ppp@gmail.com     Mechanical 
5623    Kiran     Hubli      SE       123@gmail.com     Civil
5618    Rudra     Bidar      ASE      xyz@gmail.com     Electrical
我还有一张excel表格,其中包含10000多名员工的“员工详细信息”。例如:员工详细信息excel表包含很多员工的数据,下面是员工id的示例

1677
5597
5623
5618
Empid   Name    Location    JobTitle    Email-id     Department
1677    Umesh     Gadag      ASE      abc@gmail.com    Civil
Empid   Name    Location    JobTitle    Email-id      Department
1677    Umesh     Gadag      ASE      abc@gmail.com     Civil
5597    Suresh    Udupi      ASE      ppp@gmail.com     Mechanical 
5623    Kiran     Hubli      SE       123@gmail.com     Civil
5618    Rudra     Bidar      ASE      xyz@gmail.com     Electrical
这是工作代码

import pandas as pd
df1 = pd.read_excel (r'C:\\Users\\Kiran\\Desktop\\Employee id.xlsx',header=None)# excel sheet containing only ids
df2= pd.read_excel (r'C:\\Users\\Kiran\\Desktop\\Employee details.xlsx)# excel sheet containing all details of 10000+ employees
df3 = df2[df2['Empid'].isin(df1[0])]
df3.to_excel("Output1.xlsx",index=False)#Final output
代码运行良好,但我得到的输出是随机的

Empid   Name    Location    JobTitle    Email-id       Department
1677    Umesh     Gadag      ASE      abc@gmail.com      Civil
5623    Kiran     Hubli      SE       123@gmail.com      Civil
5618    Rudra     Bidar      ASE      xyz@gmail.com     Electrical
5597    Suresh    Udupi      ASE       ppp@gmail.com    Mechanical 
但我需要按如下顺序输出,因为员工id是按特定顺序排列的。基本上,我在员工id详细信息中给出的顺序是什么?我需要员工详细信息,顺序如下所示

1677
5597
5623
5618
Empid   Name    Location    JobTitle    Email-id     Department
1677    Umesh     Gadag      ASE      abc@gmail.com    Civil
Empid   Name    Location    JobTitle    Email-id      Department
1677    Umesh     Gadag      ASE      abc@gmail.com     Civil
5597    Suresh    Udupi      ASE      ppp@gmail.com     Mechanical 
5623    Kiran     Hubli      SE       123@gmail.com     Civil
5618    Rudra     Bidar      ASE      xyz@gmail.com     Electrical
这里有一个解决方案:

df1 = df1.reset_index().rename(columns= {"index": "order"})
res = pd.merge(df1, df2, on = "Empid").sort_values("order").drop("order", axis=1)
输出为:

   Empid    Name Location JobTitle       Email-id  Department
0   1677   Umesh    Gadag      ASE  abc@gmail.com       Civil
1   5597  Suresh    Udupi      ASE  ppp@gmail.com  Mechanical
2   5623   Kiran    Hubli       SE  123@gmail.com       Civil
3   5618   Rudra    Bidar      ASE  xyz@gmail.com  Electrical
这里有一个解决方案:

df1 = df1.reset_index().rename(columns= {"index": "order"})
res = pd.merge(df1, df2, on = "Empid").sort_values("order").drop("order", axis=1)
输出为:

   Empid    Name Location JobTitle       Email-id  Department
0   1677   Umesh    Gadag      ASE  abc@gmail.com       Civil
1   5597  Suresh    Udupi      ASE  ppp@gmail.com  Mechanical
2   5623   Kiran    Hubli       SE  123@gmail.com       Civil
3   5618   Rudra    Bidar      ASE  xyz@gmail.com  Electrical

伟大的你能为后代接受我的回答吗?(点击答案旁边的灰色复选标记,将其变成绿色)。太好了。你能为后代接受我的回答吗?(单击答案旁边的灰色复选标记,将其变为绿色)。这是否回答了您的问题?这回答了你的问题吗?