raw_data_1 = { 'userid': ['1', '2', '3', '4', '5'], 'first_name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'last_name': ['Anderson', 'Ackerman', 'Ali', 'Aoni', 'Atiches']} raw_data_2 = { 'userid': ['4', '5', '6', '7', '8'], 'first_name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'last_name': ['Bonder', 'Black', 'Balwner', 'Brice', 'Btisan']}
第一实现left join,类似数据库查询
首先需要把 两个字段转换为 DataFrame
data1 = pd.DataFrame(raw_data_1) data2 = pd.DataFrame(raw_data_2)
print(pd.merge(left=data1 ,right=data2,on='userid',how='left'))
下面就是查询的结果,用左表为主表,所以 raw_data_1的所有数据,raw_data_2 的数据填写为NAN,当然这样也生产了一个新的DataFrame,也可以当做数据合并使用
how='left', 左查询 how='right',右查询
how='inner' ,类似于,数据库里面的join,把两个表都出现的数据查询出来
print(pd.merge(data1,data2,on='userid',how='inner'))
print(pd.merge(left=data1,right=data2,on='userid',how='outer')),把两个表数据都会列出来
默认是inner,如果不写how=xx
也可以选择指定的列进行合并
# dt1=data1[["first_name","userid"]] # dt2=data2[["first_name","userid"]]
print(pd.merge(left=data1 ,right=data2,on='userid',how='left'))