pandas-16 pd.merge()的用法


pandas-16 pd.merge()的用法

使用過sql語言的話,一定對join,left join, right join等非常熟悉,在pandas中,merge的作用也非常類似。
如:pd.merge(df1, df2) 找到一個外鍵,然后將兩條數據合並成一條。
直接上例子:

import numpy as np
import pandas as pd
from pandas import Series, DataFrame

df1 = DataFrame({'key':['X', 'Y', 'Z'], 'data_set_1':[1, 2, 3]})
print(df1)
'''
   data_set_1 key
0           1   X
1           2   Y
2           3   Z
'''

df2 = DataFrame({'key':['X', 'B', 'C'], 'data_set_2':[4, 5, 6]})
print(df2)
'''
   data_set_2 key
0           4   A
1           5   B
2           6   C
'''

# 感覺這個就像 操作 sql 的感覺一樣
# 找到一個外鍵 然后將兩條數據拿到手
print(pd.merge(df1, df2))
'''
   data_set_1 key  data_set_2
0           1   X           4
'''

# 第二個參數 on 代表 要在 哪一個 列上 進行 merge
# print(pd.merge(df1, df2, on='data_set_1')) # 報錯

# inner 拿出的是兩邊都有的值
print(pd.merge(df1, df2, on='key', how='inner'))
'''
   data_set_1 key  data_set_2
0           1   X           4
'''

# left 按照left的dataframe為基准,右邊值為空的話就默認nan
print(pd.merge(df1, df2, on='key', how='left'))
'''
   data_set_1 key  data_set_2
0           1   X         4.0
1           2   Y         NaN
2           3   Z         NaN
'''
# 同理 right 按照右邊為基准
print(pd.merge(df1, df2, on='key', how='right'))
'''
   data_set_1 key  data_set_2
0         1.0   X           4
1         NaN   B           5
2         NaN   C           6
'''

# outer 將 left right 的結合, 所有的key都拿出來,哪邊缺失,就補充nan
print(pd.merge(df1, df2, on='key', how='outer'))
'''
   data_set_1 key  data_set_2
0         1.0   X         4.0
1         2.0   Y         NaN
2         3.0   Z         NaN
3         NaN   B         5.0
4         NaN   C         6.0

'''


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM