pandas模块-----------比对不同数据(部分相同)

代码如下:

import pandas as pd
# 学生成绩表
df_grade = pd.read_excel("find.xlsx")
df_grade.head()
# 学生信息表
df_sinfo = pd.read_excel("data.xlsx")
df_sinfo.head()


# 只筛选第二个表的少量的列
df_sinfo = df_sinfo[["学号", "姓名", "性别"]]
df_sinfo.head()

df_merge = pd.merge(left=df_grade, right=df_sinfo, left_on="学号", right_on="学号")
df_merge.head()



# 将columns变成python的列表形式
new_columns = df_merge.columns.to_list()


# 按逆序insert,会将"姓名","性别"放到"学号"的后面
for name in ["姓名", "性别"][::-1]:
new_columns.remove(name)
new_columns.insert(new_columns.index("学号") + 1, name)


df_merge = df_merge.reindex(columns=new_columns)
df_merge.head()

#步骤4:输出最终的Excel文件
df_merge.to_excel("4.xlsx", index=False)
实现效果如下:

 

 最终结果如下:4.xlsx

 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

比对获得渠道名称,渠道编码:

上代码:

import pandas as pd
# 学生成绩表
df_grade = pd.read_excel("C:/Users/Administrator/Desktop/qu.xlsx")
df_grade.head()
# 学生信息表
df_sinfo = pd.read_excel("C:/Users/Administrator/Desktop/source.xlsx")
df_sinfo.head()


# 只筛选第二个表的少量的列
df_sinfo = df_sinfo[["渠道编码", "渠道名称"]]
df_sinfo.head()

df_merge = pd.merge(left=df_grade, right=df_sinfo, left_on="渠道编码", right_on="渠道编码")
df_merge.head()



# 将columns变成python的列表形式
new_columns = df_merge.columns.to_list()


# 按逆序insert,会将"姓名","性别"放到"学号"的后面
for name in ["渠道名称"][::-1]:
new_columns.remove(name)
new_columns.insert(new_columns.index("渠道编码") + 1, name)


df_merge = df_merge.reindex(columns=new_columns)
df_merge.head()

#步骤4:输出最终的Excel文件
df_merge.to_excel("5.xlsx", index=False)
实现效果如下:

 

 数据非常清晰明了:

 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

不安顺序来,执行相关代码:

import pandas as pd
#获取信息表
df_person = pd.read_excel('C:/Users/Administrator/Desktop/huo.xlsx')
df_person.head()

#获取第二张表
df_all = pd.read_excel('C:/Users/Administrator/Desktop/table.xlsx')
df_all.head()

#进行筛选
df_all = df_all[["姓名","学号","考试时间","第三次成绩","第二次成绩","第一次成绩"]]
df_all.head()

df_merge = pd.merge(left=df_person,right=df_all,left_on="姓名",right_on="姓名")

new_columns = df_merge.columns.to_list()





#输出最终的文件
df_merge.to_excel('C:/Users/Administrator/Desktop/1.xlsx',index=False)
实现效果如下:

 

 

"姓名","学号","考试时间","第三次成绩","第二次成绩","第一次成绩"
-------------------------------------------------------------------------------
换个顺序
import pandas as pd
#获取信息表
df_person = pd.read_excel('C:/Users/Administrator/Desktop/huo.xlsx')
df_person.head()

#获取第二张表
df_all = pd.read_excel('C:/Users/Administrator/Desktop/table.xlsx')
df_all.head()

#进行筛选
df_all = df_all[["姓名","学号","考试时间","第三次成绩","第二次成绩","第一次成绩"]]
df_all.head()

df_merge = pd.merge(left=df_all,right=df_person)

new_columns = df_merge.columns.to_list()





#输出最终的文件
df_merge.to_excel('C:/Users/Administrator/Desktop/2.xlsx',index=False)

 



posted @ 2023-07-27 17:38  往事已成昨天  阅读(128)  评论(0编辑  收藏  举报