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