python pandas Join SQL⻛格合併

超級大洋蔥806發表於2020-12-27

資料集的合併(merge)或連線(join)運算是通過⼀個或者多個鍵將資料連結起來的。這些運算是關係型資料庫的核⼼操作。pandas的merge函式是資料集進⾏join運算的主要切⼊點。

import pandas as pd
import numpy as np

# 表⼀中記錄的是name和體重資訊
df1 = pd.DataFrame(data = {'name': ['softpo','Daniel','Brandon','Ella'],'weight':[70,55,75,65]})

# 表⼆中記錄的是name和身⾼資訊
df2 = pd.DataFrame(data = {'name': ['softpo','Daniel','Brandon','Cindy'],'height':[172,170,170,166]})
df3 = pd.DataFrame(data = {'名字': ['softpo','Daniel','Brandon','Cindy'],'height':[172,170,170,166]})

# 根據共同的name將倆表的資料,進⾏合併
pd.merge(df1,df2,
 how = 'inner',# 內合併代表兩物件交集
 on = 'name')
pd.merge(df1,df3,
 how = 'outer',# 全外連線,兩物件並集
 left_on = 'name',# 左邊DataFrame使⽤列標籤 name進⾏合併
 right_on = '名字')# 右邊DataFrame使⽤列標籤 名字進⾏合併

# 建立10名學⽣的考試成績
df4 = pd.DataFrame(data = np.random.randint(0,151,size = (10,3)),
 index = list('ABCDEFHIJK'),
 columns=['Python','Keras','Tensorflow'])

# 計算每位學⽣各科平均分,轉換成DataFrame
score_mean = pd.DataFrame(df4.mean(axis = 1).round(1),columns=['平均分'])

# 將平均分和df3使⽤merge進⾏合併,它倆有共同的⾏索引
pd.merge(left = df4,right = score_mean,
 left_index=True,# 左邊DataFrame使⽤⾏索引進⾏合併
 right_index=True)# 右邊的DataFrame使⽤⾏索引進⾏合併

相關文章