練習5-合并
探索虛擬姓名數(shù)據(jù)
步驟1 導入必要的庫
運行以下代碼
import pandas as pd
import numpy as np
步驟2 按照如下的元數(shù)據(jù)內容創(chuàng)建數(shù)據(jù)框
運行以下代碼
raw_data_1 = {
? ? 'subject_id':['1','2','3','4','5'],
? ? 'first_name':['Alex','Amy','Allen','Alice','Ayoung'],
? ? 'last_name':['Anderson','Ackerman','Ali','Aoni','Atiches']}
raw_data_2 = {
? ? 'subject_id':['4','5','6','7','8'],
? ? 'first_name':['Billy','Brian','Bran','Bryce','Betty'],
? ? 'last_name':['Bonder','Black','Balwner','Brice','Btisan']}
raw_data_3 = {
? ? 'subject_id':['1','2','3','4','5','7','8','9','10','11'],
? ? 'test_id':[51,15,15,61,16,14,15,1,61,16]}
步驟3 將上述的數(shù)據(jù)框分別命名為data1, data2, data3
運行以下代碼
data1 = pd.DataFrame(raw_data_1,columns = ['subject_id','first_name','last_name'])
data2 = pd.DataFrame(raw_data_2,columns = ['subject_id','first_name','last_name'])
data3 = pd.DataFrame(raw_data_3,columns = ['subject_id','test_id'])
步驟4 將data1和data2兩個數(shù)據(jù)框按照行的維度進行合并罕袋,命名為all_data
運行以下代碼
all_data = pd.concat([data1,data2])
all_data
步驟5 將data1和data2兩個數(shù)據(jù)框按照列的維度進行合并,命名為all_data_col
運行以下代碼
all_data_col = pd.concat([data1,data2],axis = 1)
all_data_col
步驟6 打印data3
運行以下代碼
data3
步驟7 按照subject_id的值對all_data和data3作合并
運行以下代碼
pd.merge(all_data,data3,on='subject_id')
步驟8 對data1和data2按照subject_id作連接
運行以下代碼
pd.merge(data1,data2,on='subject_id',how='inner')
步驟9 找到?data1?和?data2?合并之后的所有匹配結果
運行以下代碼
pd.merge(data1,data2,on='subject_id',how='outer')
代碼截圖
拓展延伸
#對data1和data2按照subject_id作左連接
pd.merge(data1,data2,on='subject_id',how='left')
#對data1和data2按照subject_id作右連接
pd.merge(data1,data2,on='subject_id',how='right')