Python学习笔记---merge和concat数据合并(1)
Python學(xué)習(xí)筆記—merge和concat數(shù)據(jù)合并(1)
Python學(xué)習(xí)筆記—merge和concat數(shù)據(jù)合并(2)
文章目錄
- Python學(xué)習(xí)筆記---merge和concat數(shù)據(jù)合并(1)
- 前言
- 一、數(shù)據(jù)合并--merge
- 二、操作步驟
- 1.先合并其中2張表
- 2.再合并第3張表
- 3.查看數(shù)據(jù)的總數(shù)(避免丟數(shù)據(jù))
- 總結(jié)
前言
數(shù)據(jù)處理中經(jīng)常對多個表的數(shù)據(jù)進(jìn)行合并處理,這個功能類似于SQL中的join 聯(lián)表查詢。python可用于聯(lián)表的函數(shù)是merge和concat。
兩者區(qū)別:
1、merge:只能用于2張表的合并,多用于按列進(jìn)行表合并 通過主鍵進(jìn)行連接。如果需要3張表合并,需要先進(jìn)行其 中2個表的合并 形成新的表,再進(jìn)行第3張表連合并。
concat:可直接合并3張表,也可按行合并(追加)。
2、merge合并可以通過主鍵連結(jié),自動去除重復(fù)的列。concat合并若是按照列合并 axis=1是把原表所有數(shù)據(jù)合并,不去除重復(fù)的列,如果需要去除重復(fù)的列,則需要使用drop_duplicates()去重。
這里介紹merge的用法。點(diǎn)擊文章標(biāo)題下的鏈接,可查看concat的用法。
一、數(shù)據(jù)合并–merge
merge的參數(shù)如下:
pd.merge( left, right, how=‘inner’, on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=(‘_x’, ‘_y’), copy=True, indicator=False, validate=None,)
參數(shù)釋義:
left:關(guān)聯(lián)的其中一個表。
right:關(guān)聯(lián)的另外一個表。
how:值有{‘left’, ‘right’, ‘outer’, ‘inner’, ‘cross’}, 默認(rèn)‘inner’。類似于sql的 left join、right join、outer join、inner join、cross join。
on:指定主鍵。用于關(guān)聯(lián)2個表的字段,必須同時存在于2個表中。類似于sql中的on用法。可以不指定,默認(rèn)以2表中共同字段進(jìn)行關(guān)聯(lián)。
left_on和right_on:兩個表里沒有完全一致的列名,但是有信息一致的列,需要指定以哪個表中的字段作為主鍵。
left_index和right_index:除了指定字段作為主鍵以外,還可以考慮用索引作為拼接的主鍵,leftindex和rightindex默認(rèn)為False,就是不以索引作為主鍵。若合并的表含有相同字段/索引,可以同時設(shè)定left_index = True和right_index = True。
sort:是否按連結(jié)主鍵進(jìn)行排序,默認(rèn)是False,指不排序。True表示按連結(jié)主鍵(on 對應(yīng)的列名)進(jìn)行升序排列。
l
二、操作步驟
對users、movies、ratings三張表進(jìn)行合并。
users表:
movies表:
ratings表:
1.先合并其中2張表
代碼如下:
import pandas as pd #先按主鍵user_id合并ratings和users表 data = pd.merge(ratings,users,on ='user_id' )#查詢合并后的結(jié)果,輸出前5行 data[:5]2.再合并第3張表
代碼如下:
#再按主鍵movie_id 合并data和movise表,并對sort 按movie_id的升序排列 all_data = pd.merge(data,movies,on = 'movie_id',sort = True) #查詢3張表的合并結(jié)果,輸出前5行 all_data[:5]3.查看數(shù)據(jù)的總數(shù)(避免丟數(shù)據(jù))
all_data.shape總結(jié)
個人覺得在處理多個表關(guān)聯(lián)過程中,merge更好用些,雖然只能兩兩關(guān)聯(lián),但可以有更多其他的操作。作為python的初學(xué)者,目前只關(guān)注到merge和concat的這些功能,可能還有其他更好用的方法,歡迎留言討論。
【每天積累一點(diǎn)點(diǎn),python的路上就少迷惑一點(diǎn),更高效一些】
總結(jié)
以上是生活随笔為你收集整理的Python学习笔记---merge和concat数据合并(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 西安80投影坐标系转WGS84地理坐标系
- 下一篇: iCloud照片库和照片流的差别