日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python学习笔记---merge和concat数据合并(1)

發(fā)布時間:2023/12/14 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python学习笔记---merge和concat数据合并(1) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。