Pandas7——excel【多表拼接vlookup】

实例示例

背景:

1、用分数信息表填充学生信息表
2、学生信息表分数信息表中没有的ID,score填充为0。

import pandas as pd


Stu=pd.read_excel("D:\\python_pandas\\sample\\demo09\\Student_Score.xlsx",
sheet_name="Students",index_col="ID")
Score=pd.read_excel("D:\\python_pandas\\sample\\demo09\\Student_Score.xlsx",
sheet_name="Scores",index_col="ID")
# print("*"*20)
# print(Stu.head())
# print("*"*20)
# print("*"*20)
# print(Score.head())
# print("*"*20)
# 方法一
    # 支持左联、右联、内联和外联
    # 支持行、列拼接,取决于onj接收column_index还是row_index
poeple_info=Stu.merge(Score,how="left",on="ID",).fillna(0)
# 方法二
    # 支持左联、右联、内联和外联
    # 仅支持列拼接
# poeple_info=Stu.join(Score,how="left").fillna(0)
# 方法三
    #concat只能进行内联或者外联(交集或者并集)
    # 支持行、列拼接,取决于axis
    # 需要pandas调用
# poeple_info=pd.concat([Stu,Score],axis=1,join="inner")
# 方法四
    #append相当于concat(axis =0),
    #只能行拼接
poeple_info["Score"] = poeple_info["Score"].astype(int)
print(poeple_info.head(20))
输出结果:
           Name  Score
ID                    
1   Student_001     81
3   Student_003     83
5   Student_005     85
7   Student_007     87
9   Student_009     89
11  Student_011     91
13  Student_013     93
15  Student_015     95
17  Student_017     97
19  Student_019     99
21  Student_021      0
23  Student_023      0
25  Student_025      0
27  Student_027      0
29  Student_029      0
31  Student_031      0
33  Student_033      0
35  Student_035      0
37  Student_037      0
39  Student_039      0

小结:

函数 适用场景
.concat() 1、两个或多个df间拼接
2、行方向或列方向(Axis)
3、左联、右联、内联和外联
4、属于pandas函数,dataFrame不能调用
.merge() 1、两个df间拼接
2、行方向或列方向(on)
3、左联、右联、内联和外联,默认内联
.join() 1、两个df间拼接
2、列方向
3、左联、右联、内联和外联,默认左列拼接,how=’left’
.append() 可用于df间行方向的拼接操作

left

right

outer

inner

推荐视频链接
推荐博客链接

你可能感兴趣的:(Pandas7——excel【多表拼接vlookup】)