merge()函數


1 

a1 = pd.DataFrame({ 'a': [1, 1, 2, 2, 2, 6, 7, 8, 10], 'b': [1, 2, 3, 4, 5, 6, 7, 8, 9], 'c': [1, 2, 3, 4, 5, 6, 7, 8, 9] }) a2 = pd.DataFrame({ 'a': [1, 1, 2, 4, 5, 6, 7, 8, 11], 'b': ['w', 'e', '2對應的出現3次', 4, 5, 6, 7, 8, 9], 'c': ['d', 'g', '2對應的出現3次', 4, 5, 6, 7, 8, 9] }) a3 = pd.merge( left = a1, right = a2, on = ['a'], how = 'left') print(a3) # a b_x c_x b_y c_y # 0 1 1 1 w d # 1 1 1 1 e g # 2 1 2 2 w d # 3 1 2 2 e g # 4 2 3 3 2對應的出現3次 2對應的出現3次 # 5 2 4 4 2對應的出現3次 2對應的出現3次 # 6 2 5 5 2對應的出現3次 2對應的出現3次 # 7 6 6 6 6 6 # 8 7 7 7 7 7 # 9 8 8 8 8 8 # 10 10 9 9 NaN NaN

用於融合的函數

https://blog.csdn.net/brucewong0516/article/details/82707492

pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,

         left_index=False, right_index=False, sort=True,

         suffixes=('_x', '_y'), copy=True, indicator=False,

         validate=None)

融合原則 :若不指定左右,則必須是key中相同的值才可以融合(左右指的是要融合的數組不是key)

           若指定了左右,則指定的一列必須有,另一列繼續融合,出現兩個及以上相同的不會丟失。若兩邊都有相同的,則最終個數是按乘法算。比如當按左邊融合時,最終的個數不一定是左邊的id個數,應該是每個id對應數量乘積之和

           若指定的是outer,則是最大限度的融合,實際上是左融合和右融合的並集

           若指定的是inner,則是最小限度的融合,實際上是左融合和右融合的交集

注意:how的參數必須是 left和right

2 merge()做兩個表的融合時,注意融合后表的index始終是按照左邊的表格算的,當想要融合后的表格按照某個表的融合列排序時,就要將該表放在左邊,與how是left或right無關.

3  left和right后面的表格不加'',否則就成字符串了,會報錯:ValueError: can not merge DataFrame with instance of type <class 'str'>

 

 


免責聲明!

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



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