【数据分析&数据挖掘】pandas数据合并

 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)

猜你喜欢

转载自www.cnblogs.com/Tree0108/p/12116049.html