1 import pandas as pd 2 3 # 加载数据 4 data_1 = pd.read_excel("./concat合并数据.xlsx", sheetname=0) 5 data_2 = pd.read_excel("./concat合并数据.xlsx", sheetname=1) 6 7 print("data_1: \n", data_1) 8 print("data_2: \n", data_2) 9 10 # 外连接——求并集 11 # 内链接——求交集 12 # 左(外)链接——以左表为主求并集 13 # 右(外)链接——以右表为主求并集 14 15 # 直接拼接方式——pd.concat() 16 # axis=0, 外连接——行上直接拼接,列上求并集 17 res = pd.concat((data_1, data_2), axis=0, join="outer") 18 # axis = 0, 内连接——行上直接拼接,列上求交集 19 # res = pd.concat((data_1, data_2), axis=0, join="inner") 20 21 # axis = 1, 外连接——列上直接拼接,行上求并集 22 # res = pd.concat((data_1, data_2), axis=1, join="outer") 23 # axis = 1, 内连接——列上直接拼接,行上求交集 24 # res = pd.concat((data_1, data_2), axis=1, join="inner") 25 print("res: \n", res) 26 27 # 主键拼接方式 28 # 加载数据 29 left = pd.read_excel("./主键拼接数据.xls", sheetname=0) 30 right = pd.read_excel("./主键拼接数据.xls", sheetname=1) 31 print("left: \n", left) 32 print("right: \n", right) 33 34 # 主键拼接 35 # 外连接——将所有的key进行拼接, 如果没有补NaN 36 res = pd.merge(left=left, right=right, on="key", how="outer") 37 # 内链接——将共同所有的key进行拼接 38 res = pd.merge(left=left, right=right, on="key", how="inner") 39 # 左外连接——将左表所有的key进行拼接,右表来配合坐标,如果右表没有key补NaN 40 res = pd.merge(left=left, right=right, on="key", how="left") 41 # 右外连接——将右表所有的key进行拼接,右表来配合坐标,如果右表没有key补NaN 42 res = pd.merge(left=left, right=right, on="key", how="right") 43 print("res: \n", res) 44 45 # 加载数据 46 left = pd.read_excel("./主键拼接数据_同值不同key.xls", sheetname=0) 47 right = pd.read_excel("./主键拼接数据_同值不同key.xls", sheetname=1) 48 49 print("left: \n", left) 50 print("right: \n", right) 51 52 # 将坐标中的key_left与右表中的key_right的所有值来进行左右拼接,如果只单独存在于一方,另一方补NaN 53 res = pd.merge(left=left, right=right, left_on="key_left", right_on="key_right", how="outer") 54 # 将坐标中的key_left与右表中的key_right共同拥有的key值进行左右拼接 55 res = pd.merge(left=left, right=right, left_on="key_left", right_on="key_right", how="inner") 56 # 将左表中的key_left中所有的key进行左右连接, 右表配合左表, 如果没有相同的Key_right值,补NaN 57 res = pd.merge(left=left, right=right, left_on="key_left", right_on="key_right", how="left") 58 # 将左表中的key_right中所有的key进行左右连接, 左表配合右表, 如果没有相同的Key_left值,补NaN 59 res = pd.merge(left=left, right=right, left_on="key_left", right_on="key_right", how="right") 60 print("res: \n", res) 61 62 # left.join() 63 # df1.join(df2)
原文地址:https://www.cnblogs.com/Tree0108/p/12116049.html
时间: 2024-11-06 07:13:34