摘要:第章合并連接數(shù)據(jù)集包含三個(gè)函數(shù)省略,在頁(yè)。沒(méi)有對(duì)默認(rèn)合并兩個(gè)表的所有列,如果有列,有列,則結(jié)果為列多對(duì)保留多條記錄多對(duì)多會(huì)交叉每一條記錄通過(guò)參數(shù)設(shè)定連接方式兩個(gè)表都有兩個(gè)字段,則通過(guò)連接兩個(gè)表。
第3章 7-8:合并、連接數(shù)據(jù)集
包含三個(gè)函數(shù):
numpy:concatenate 省略,在126頁(yè)。
pandas:concat/ append(略過(guò)) /merge
主要是講merge函數(shù)的參數(shù):pd.merge(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) pd.merge 官方文檔
concat:如果a,b是兩個(gè)字段名稱相同的dataframe,就像原來(lái)的一部、二部各有存放業(yè)績(jī)的兩個(gè)表,在sql中可以用join連接,而pandas中用concat連接(注意有中括號(hào))
pd.concat([yibu,erbu]) #yibu,erbu是兩個(gè)dataframe
如果兩個(gè)表的字段名不完全相同,會(huì)自動(dòng)填充沒(méi)有的字段,如下:
如果只想保留都有的字段,則在參數(shù)中指定為inner
如果想保留df5的字段名(即不要df6中的D列,可以在join_axes中設(shè)定
pd.concat([df5,df6], join_axes = [df5.columns])
分為1對(duì)1,1對(duì)多,多對(duì)多。
(merge沒(méi)有[ ])
pd.merge(df1,df2) #默認(rèn)合并兩個(gè)表的所有列,如果df1有a,b列,df2有b,c列,則結(jié)果為a,b,c列-- 多對(duì)1:保留多條記錄 -- 多對(duì)多:會(huì)交叉每一條記錄
通過(guò)參數(shù) on 設(shè)定連接方式:
df1: employee, group
df2: employee, hire_data
兩個(gè)表都有employee兩個(gè)字段,則通過(guò)employee連接兩個(gè)表。
pd.merge(df1,df2,on = "employee")
df3: name, salary
df1與 df3沒(méi)有相同的字段,但是df3中的name和df1中的employee字段內(nèi)容相同,都是姓名,所有可以通過(guò)left_on,right_on設(shè)定左右兩個(gè)表的關(guān)聯(lián)字段,實(shí)現(xiàn)連接。
pd.merge(df1,df3, left_on = "employee", right_on = "name") # name和employee的字段內(nèi)容相同,可刪除name保留一列: pd.merge(df1,df3, left_on = "employee", right_on = "name").drop("name",axis =1)通過(guò)索引連接,這部分略講:
假如df1,df2中的index均為employee列,則連接方法如下:
pd.merge(df1,df2, left_index = True, right_index=True) # 也可以用join連接 df1.join(df2)
如果df1的empolyee為索引,df2沒(méi)有設(shè)置索引,則連接的代碼為: 134頁(yè)
pd.merge(df1, df2, left_index =True, right_on="name")
-- 參數(shù) how:連接方式
這里主要是用merge里面的參數(shù)how,how參數(shù)有4種方式:
inner:內(nèi)連接,保留兩個(gè)表相同的行
outer:外連接,保留兩個(gè)表所有的行
left:左連接,以左表為準(zhǔn),保留左表所有的行,右表匹配左表的結(jié)果
right:右連接,以右表為準(zhǔn),*
pd.merge(df6,df7, how = "inner")
-- 參數(shù) suffixes:自定義后綴名
如果兩個(gè)表的字段名相同,但對(duì)于的值不同,想保留兩個(gè)表不同的值,可以設(shè)定參數(shù)suffixes
pd.merge(df8,df9, on = "name", suffixes = ["_L","_R"])
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/44975.html
今天開(kāi)始學(xué)習(xí)《數(shù)據(jù)科學(xué)手冊(cè)》,主要學(xué)習(xí)3-5章,其他的選修。 -- 先連接數(shù)據(jù)庫(kù)加載數(shù)據(jù): 用sqlalchemy 的create_engine連接: 注意:代碼里mysql+pymysql: 這部分不能加空格,否則會(huì)報(bào)錯(cuò) import pymysql import pandas as pd from sqlalchemy import create_engine sql = select...
摘要:數(shù)據(jù)規(guī)整化清理轉(zhuǎn)換合并重塑數(shù)據(jù)聚合與分組運(yùn)算數(shù)據(jù)規(guī)整化清理轉(zhuǎn)換合并重塑合并數(shù)據(jù)集可根據(jù)一個(gè)或多個(gè)鍵將不同中的行鏈接起來(lái)。函數(shù)根據(jù)樣本分位數(shù)對(duì)數(shù)據(jù)進(jìn)行面元?jiǎng)澐帧W值浠?,給出待分組軸上的值與分組名之間的對(duì)應(yīng)關(guān)系。 本篇內(nèi)容為整理《利用Python進(jìn)行數(shù)據(jù)分析》,博主使用代碼為 Python3,部分內(nèi)容和書(shū)本有出入。 在前幾篇中我們介紹了 NumPy、pandas、matplotlib 三個(gè)...
摘要:主成分分析就是降維,通過(guò)線性組合,把多個(gè)原始變量合并成若干個(gè)主成分,這樣每個(gè)主成分都變成原始變量的線性組合。相關(guān)系數(shù)系數(shù)為為為。從結(jié)果看,這個(gè)數(shù)據(jù)可能不太適合用來(lái)分析,因?yàn)榻档骄S后的代筆性不足。 這兩天用學(xué)了主成分分析,用的是PCA。主成分分析就是降維,通過(guò)線性組合,把多個(gè)原始變量合并成若干個(gè)主成分,這樣每個(gè)主成分都變成原始變量的線性組合。所以你想看具體哪個(gè)特征對(duì)結(jié)果的影響大,通過(guò)PC...
摘要:貢獻(xiàn)者飛龍版本最近總是有人問(wèn)我,把這些資料看完一遍要用多長(zhǎng)時(shí)間,如果你一本書(shū)一本書(shū)看的話,的確要用很長(zhǎng)時(shí)間。為了方便大家,我就把每本書(shū)的章節(jié)拆開(kāi),再按照知識(shí)點(diǎn)合并,手動(dòng)整理了這個(gè)知識(shí)樹(shù)。 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=200); 貢獻(xiàn)者:飛龍版...
摘要:官方文檔連接像其他函數(shù)一樣,官方文檔中的參數(shù)有很多,具體如下寫(xiě)在前面,如果要對(duì)透視表中的字段進(jìn)行計(jì)數(shù),有時(shí)候用會(huì)報(bào)錯(cuò),可以用實(shí)例運(yùn)用簡(jiǎn)單版透視表上面以部門(mén)為索引,下面有二級(jí)索引,部門(mén)小組。 本節(jié)學(xué)習(xí)數(shù)據(jù)透視表 引用激勵(lì)數(shù)據(jù),連接數(shù)據(jù)庫(kù)jili表,jili這幾個(gè)太難打了,下文用df代表激勵(lì)數(shù)據(jù)(代碼省略)之前在excel中用爛了的透視表,終于用python來(lái)實(shí)現(xiàn)了,其實(shí)主要是講pivot...
閱讀 1774·2021-09-28 09:43
閱讀 1122·2021-09-23 11:22
閱讀 2738·2021-09-14 18:05
閱讀 1832·2019-08-30 15:52
閱讀 2822·2019-08-30 10:55
閱讀 2019·2019-08-29 16:58
閱讀 1332·2019-08-29 16:37
閱讀 3045·2019-08-29 16:25