国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Python處理EXCEL】基礎(chǔ)操作篇3:用Python對(duì)Excel表格進(jìn)行拼接合并

這篇具有很好參考價(jià)值的文章主要介紹了【Python處理EXCEL】基礎(chǔ)操作篇3:用Python對(duì)Excel表格進(jìn)行拼接合并。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

準(zhǔn)備工作

一、橫向拼接

1.1 一般拼接

1.2 指定鍵進(jìn)行拼接,即指定某一列作為兩個(gè)表的連接依據(jù)。

1.2.1 多對(duì)一

1.2.2 多對(duì)多

1.2.3 用on來(lái)指定多個(gè)連接鍵

1.2.4?指定左右連接鍵

1.2.5?索引當(dāng)作連接鍵

1.3?連接的方式

1.3.1 內(nèi)連接(inner)

1.3.2 左連接(left)

1.3.3 右連接(right)

1.3.4 外連接(outer)

二、縱向拼接

2.1 普通合并

2.2 重疊數(shù)據(jù)的合并

三、整合代碼


準(zhǔn)備工作

我準(zhǔn)備了兩個(gè)表格數(shù)據(jù),以此展示本期的表格的合并的工作。數(shù)據(jù)示例如下:

表格1

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

表格2

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

接著將這兩個(gè)表格的數(shù)據(jù)分別導(dǎo)入python中,導(dǎo)入代碼入下:

import pandas as pd
df1=pd.read_excel(r"D:\雜貨\展示數(shù)據(jù)1.xlsx",sheet_name='Sheet1')
df2=pd.read_excel(r"D:\雜貨\展示數(shù)據(jù)2.xlsx",sheet_name='Sheet1')

?具體的導(dǎo)入方法和以上使用到的pandas庫(kù)的安裝在前章我已有介紹,不再贅述,請(qǐng)轉(zhuǎn)至:

https://blog.csdn.net/Deng333333555/article/details/125092526?spm=1001.2014.3001.5501

本篇涉及到一些基礎(chǔ)的表格數(shù)據(jù)的概念,而對(duì)于“索引”的相關(guān)知識(shí)可以看之前寫的“基礎(chǔ)操作篇2”,里面有相關(guān)的介紹,可以幫助理解“索引”的含義。相關(guān)可轉(zhuǎn)至以下連接:

https://blog.csdn.net/Deng333333555/article/details/125138116?spm=1001.2014.3001.5501?

一、橫向拼接

1.1 一般拼接

首先我們先看一下合并前的表格1和表格2的數(shù)據(jù)樣式:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

?這兩個(gè)表格存在公共列,為列索引為“學(xué)號(hào)”的那一列。

合并代碼如下:

merge_1=pd.merge(df1,df2)#df1與df2分別為要合并的兩個(gè)表格
print(merge_1)

此時(shí)程序會(huì)自己尋找兩個(gè)表的公共列,依照公共列進(jìn)行拼接。(公共列:有相同的列)

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

?合并后的數(shù)據(jù)如上圖所示。

1.2 指定鍵進(jìn)行拼接,即指定某一列作為兩個(gè)表的連接依據(jù)。

1.2.1 多對(duì)一

多對(duì)一的情況下的列表數(shù)據(jù)大致為一下形式:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

?可以看到,上面為列表1,下面為列表2,列表1的“學(xué)號(hào)”那一列的數(shù)據(jù)都是“唯一的”,即分別只有一個(gè)100,101,102,103,沒(méi)有重復(fù)值;而在列表2中,“學(xué)號(hào)”那一列的數(shù)據(jù)就有重復(fù)值,即有兩個(gè)100,101等。這種情況下,將列表2合并到列表1中就叫作多對(duì)一的合并。

合并代碼如下:

merge_2=pd.merge(df1,df2,on="學(xué)號(hào)")#on="學(xué)號(hào)"即是說(shuō)依照學(xué)號(hào)那一列進(jìn)行合并
print(merge_2)

1.2.2 多對(duì)多

多對(duì)多情況下的數(shù)據(jù)樣式如下:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

?由上圖可知,多對(duì)多即是列表1與列表2中“學(xué)號(hào)”列都有重復(fù)項(xiàng)。合并代碼如下:

merge_3=pd.merge(df1,df2)
print(merge_3)

?合并后的表格如下:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

1.2.3 用on來(lái)指定多個(gè)連接鍵

原數(shù)據(jù)樣式如下:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

?上面為表格1,下面為表格2(即df1和df2)

由1.2.1一處已經(jīng)了解到,可以通過(guò)on="學(xué)號(hào)"來(lái)指定某個(gè)連接鍵,而當(dāng)需要指定多個(gè)連接鍵時(shí),同樣也是使用on來(lái)實(shí)現(xiàn)。代碼如下:

merge_4=pd.merge(df1,df2,on=['姓名','學(xué)號(hào)'])#語(yǔ)法為on=[]
print(merge_4)

合并后的列表如下:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

1.2.4?指定左右連接鍵

合并前的數(shù)據(jù)樣式為:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

?以上為兩個(gè)待拼接的表格。

當(dāng)要連接的兩個(gè)表之間沒(méi)有公共列時(shí)(實(shí)際值一樣,但列名不同),則可通過(guò)左右連接鍵拼接兩個(gè)表。其中l(wèi)eft_on用來(lái)指明左表的連接鍵的列名,right_on用來(lái)指明右表的連接鍵的列名。具體看如下示,代碼如下:

merge_5=pd.merge(df1,df2,left_on="編號(hào)",right_on='學(xué)號(hào)')
print(merge_5)

執(zhí)行代碼,合并后的列表如下:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

1.2.5?索引當(dāng)作連接鍵

從上面的表格數(shù)據(jù)中可以看到,其索引列為最左邊的那幾個(gè)數(shù)字,0,1,2,3……。但有時(shí)候我們會(huì)需要用某一列的內(nèi)容作為索引列,此時(shí)可以通過(guò)以下代碼將索引列替換掉:

change=df1.set_index("編號(hào)")
print(change)

轉(zhuǎn)換索引列前的列表樣式如下:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

?轉(zhuǎn)換之后索引列的列表樣式如下:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

不難發(fā)現(xiàn)最左邊的那一列的索引有所不同。(注意:此時(shí)待合并的列表1與列表2的索引已經(jīng)不同了)

接下來(lái)我們可以通過(guò)以下代碼依據(jù)索引來(lái)進(jìn)行列表的合并:

merge_6=pd.merge(df1,df2,left_index=True,right_index=True)
print(merge_6)

合并后的列表樣式如下:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

1.3?連接的方式

1.3.1 內(nèi)連接(inner)

內(nèi)連接就是取兩個(gè)表中的共同擁有的內(nèi)容,而若不是共同擁有的內(nèi)容的話,在內(nèi)連接后形成的新的表格會(huì)將非共同擁有的內(nèi)容“刪除”,只保留共同擁有的內(nèi)容。

合并前的兩個(gè)列表樣式如下:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

?內(nèi)連接的代碼如下:

merge_7=pd.merge(df1,df2,on='學(xué)號(hào)',how='inner')
print(merge_7)

?合并后的表格如下:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

1.3.2 左連接(left)

以左表為基礎(chǔ),右表往左表上拼接。當(dāng)遇到左(右)表有,而右(左)表沒(méi)有的內(nèi)容,空缺的部分則會(huì)以NaN的方式填充。

合并前的兩個(gè)列表樣式如下:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

?合并代碼如下:

merge_8=pd.merge(df1,df2,on='學(xué)號(hào)',how='left')
print(merge_8)

?合并后表格如下:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

1.3.3 右連接(right)

以右表為基礎(chǔ),左表往右表上拼接。其他與左連接同理。

1.3.4 外連接(outer)

取兩個(gè)表的并集。

合并代碼如下:

merge_9=pd.merge(df1,df2,on='學(xué)號(hào)',how='outer')
print(merge_9)

?合并前表格如下:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

合并后表格如下:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

二、縱向拼接

2.1 普通合并

合并前表格如下:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

代碼如下:

merge_x=pd.concat([df1,df2])
print(merge_x)

合并后表格如下:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

注意:縱向拼接的concat中使用的是列表,和merge的形式有所不同。

索引設(shè)置:普通合并的方法中,合并后的表格是保留原索引的,如上圖所,編號(hào)處的數(shù)字索引是重復(fù)的。而為了解決這個(gè)問(wèn)題,我們通常會(huì)需要對(duì)索引進(jìn)行設(shè)置。

合并代碼如下:

merge_x=pd.concat([df1,df2],ignore_index=True)
print(merge_x)

合并后表格如下:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

通過(guò)ignore_index=True設(shè)置的拼接表格后,可以發(fā)現(xiàn)最左邊的編號(hào)索引編程了順序數(shù)字。

2.2 重疊數(shù)據(jù)的合并

在未處理重疊數(shù)據(jù)的合并形式下,如果兩個(gè)表格中出現(xiàn)相同的數(shù)據(jù)內(nèi)容,那么在合并后的新表格中會(huì)出現(xiàn)多條數(shù)據(jù)重復(fù)的情況,為解決這個(gè)問(wèn)題,我們可以進(jìn)行如下處理:

合并前的表格:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

?通過(guò)以下代碼合并:

merge_y=pd.concat([df1,df2],ignore_index=True).drop_duplicates()
print(merge_y)

合并后的表格如下:

python合并excel,python,經(jīng)驗(yàn)分享,pandas,數(shù)據(jù)分析,pycharm

此時(shí)程序會(huì)自動(dòng)地將重復(fù)項(xiàng)合二為一。從合并前后的表格對(duì)比可知,合并前有兩個(gè)“王五”的內(nèi)容

,合并后兩個(gè)“王五”合二為一。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-798414.html

三、整合代碼

import pandas as pd

df1=pd.read_excel(r"D:\雜貨\展示數(shù)據(jù)1.xlsx",sheet_name='Sheet1')
df2=pd.read_excel(r"D:\雜貨\展示數(shù)據(jù)2.xlsx",sheet_name='Sheet1')
print(df1)
print(df2)

merge_1=pd.merge(df1,df2)#一般橫向拼接
print(merge_1)

merge_2=pd.merge(df1,df2,on="學(xué)號(hào)")#指定連接鍵
print(merge_2)

merge_3=pd.merge(df1,df2)
print(merge_3)

merge_4=pd.merge(df1,df2,on=['姓名','學(xué)號(hào)'])#指定多個(gè)連接鍵
print(merge_4)

merge_5=pd.merge(df1,df2,left_on="編號(hào)",right_on='學(xué)號(hào)')#指定左右連接鍵
print(merge_5)

change=df1.set_index("編號(hào)")#重置索引
print(change)
merge_6=pd.merge(df1,df2,left_index=True,right_index=True)#依照索引拼接
print(merge_6)

merge_7=pd.merge(df1,df2,on='學(xué)號(hào)',how='inner')#內(nèi)連接
print(merge_7)

merge_8=pd.merge(df1,df2,on='學(xué)號(hào)',how='left')#左連接
print(merge_8)

merge_9=pd.merge(df1,df2,on='學(xué)號(hào)',how='outer')#外連接
print(merge_9)

merge_x=pd.concat([df1,df2],ignore_index=True)#一般縱向拼接
print(merge_x)

merge_y=pd.concat([df1,df2],ignore_index=True).drop_duplicates()#縱向拼接并重置索引
print(merge_y)

到了這里,關(guān)于【Python處理EXCEL】基礎(chǔ)操作篇3:用Python對(duì)Excel表格進(jìn)行拼接合并的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python操作Excel表格的模塊xlrd的簡(jiǎn)單介紹

    Python操作Excel表格的模塊xlrd的簡(jiǎn)單介紹

    Python操作Excel表格的模塊xlrd的簡(jiǎn)單介紹 處理數(shù)據(jù)對(duì)Python來(lái)說(shuō),比較容易,操作簡(jiǎn)單,功能強(qiáng)大,短短幾行代碼,就可處理大量的數(shù)據(jù)信息,下面介紹Python處理Excel表格的一個(gè)模塊:xlrd。 一、xlrd簡(jiǎn)介及安裝 xlrd是Python處理Excel表格數(shù)據(jù)的一個(gè)模塊,他可以對(duì)Excel數(shù)據(jù)進(jìn)行讀取,

    2024年02月01日
    瀏覽(24)
  • python使用OpenPyXl庫(kù)對(duì)Excel進(jìn)行操作

    參考:知乎文章 / OpenPyXL教程 / 博客園 目錄 python使用OpenPyXl庫(kù)對(duì)Excel進(jìn)行操作 1. 基本概念 2. 判斷文件是否存在 3. 創(chuàng)建和打開Excel文件 3.1. 創(chuàng)建Excel文件 3.2. 打開已有的Excel文件 4. 儲(chǔ)存數(shù)據(jù) 5. sheet操作 6. cell操作 在OpenPyXl中的基本改變跟Excel文件中是完全一致的。 workbook sheet c

    2024年02月01日
    瀏覽(17)
  • [數(shù)據(jù)分析實(shí)戰(zhàn)]對(duì)比用Excel和Python用來(lái)做數(shù)據(jù)分析的優(yōu)缺點(diǎn),用Python的Pandas操作Excel數(shù)據(jù)表格原來(lái)如此簡(jiǎn)單?還不趕緊學(xué)起來(lái)?

    [數(shù)據(jù)分析實(shí)戰(zhàn)]對(duì)比用Excel和Python用來(lái)做數(shù)據(jù)分析的優(yōu)缺點(diǎn),用Python的Pandas操作Excel數(shù)據(jù)表格原來(lái)如此簡(jiǎn)單?還不趕緊學(xué)起來(lái)?

    目錄 首先,我先總結(jié)一下用Excel和Python用來(lái)做數(shù)據(jù)分析的優(yōu)缺點(diǎn) Excel做數(shù)據(jù)分析的優(yōu)點(diǎn): Excel做數(shù)據(jù)分析的缺點(diǎn): Python做數(shù)據(jù)分析的優(yōu)點(diǎn): Python做數(shù)據(jù)分析的缺點(diǎn): 1.展示本例子中使用的數(shù)據(jù) 2.開始動(dòng)手 一、導(dǎo)入數(shù)據(jù)以及理解數(shù)據(jù)部分? 1.1查看數(shù)據(jù)維度(行列) 2.2.查看數(shù)據(jù)格

    2024年02月04日
    瀏覽(21)
  • Python打開文件并進(jìn)行處理,txt、excel、pdf、word!

    Python打開文件并進(jìn)行處理,txt、excel、pdf、word!

    在辦公處理中,我們常常要打開一些文件,面臨大量的數(shù)據(jù)時(shí),傳統(tǒng)的人工方法耗時(shí)耗力。在python中,有一系列包裝好的庫(kù),讓我們能夠很方便的操作各種類型的文件。當(dāng)然,python的內(nèi)置函數(shù)也能夠很好的打開一些文件。本文主要探討python打開各類文件的方式。本文介紹的主

    2023年04月08日
    瀏覽(88)
  • Python操作excel進(jìn)行插入、刪除行操作實(shí)例演示,利用xlwings庫(kù)實(shí)現(xiàn)

    Python操作excel進(jìn)行插入、刪除行操作實(shí)例演示,利用xlwings庫(kù)實(shí)現(xiàn)

    插入行演示采用正序遍歷操作,直接使用 xlwings 提供的 sheet.api.Rows(\\\"行數(shù)\\\").Insert() 方法就能實(shí)現(xiàn)整行插入處理。 需要注意的是 ,如果是前插入,要避免再次檢測(cè)到剛才匹配過(guò)的內(nèi)容,以防循環(huán)反復(fù)插入原位置。 調(diào)整前: 處理過(guò)程: 調(diào)整后: 刪除行演示采用逆序遍歷操作,

    2023年04月08日
    瀏覽(15)
  • EXCEL表格操作

    EXCEL表格操作

    1.帶格式合并:=D6\\\"歡迎光臨\\\"E6? 2.帶格式復(fù)制粘貼:ctrl+c 復(fù)制,選擇對(duì)于單元格點(diǎn)擊選擇性粘貼:粘貼值和數(shù)字格式

    2024年02月13日
    瀏覽(25)
  • java處理Excel表格(EasyExcel)

    1.EasyExcel特點(diǎn) Java領(lǐng)域解析、生成Excel比較有名的框架有Apache poi、jxl等。但他們都存在一個(gè)嚴(yán)重的問(wèn)題就是非常的耗內(nèi)存。如果你的系統(tǒng)并發(fā)量不大的話可能還行,但是一旦并發(fā)上來(lái)后一定會(huì)OOM或者JVM頻繁的full gc。 EasyExcel是阿里巴巴開源的一個(gè)excel處理框架,以使用簡(jiǎn)單、節(jié)

    2024年02月15日
    瀏覽(22)
  • vue 實(shí)現(xiàn)前端處理 “數(shù)組數(shù)據(jù)“ 轉(zhuǎn)excel格式文件,并導(dǎo)出excel表格

    一、安裝插件?XLSX 二、頁(yè)面引入 ? ? ? ?希望我的愚見能夠幫助你哦~,若有不足之處,還望指出,你們有更好的解決方法,歡迎大家在評(píng)論區(qū)下方留言支持,大家一起相互學(xué)習(xí)參考呀~

    2024年01月18日
    瀏覽(31)
  • 如何使用xlwings庫(kù)創(chuàng)建圖表及設(shè)置坐標(biāo)軸標(biāo)題文本內(nèi)容----關(guān)于Python里xlwings庫(kù)對(duì)Excel表格的操作(三十二)

    這篇小筆記主要記錄如何 【如何使用“Chart類”、“Api類\\\"和“Axes函數(shù)”設(shè)置坐標(biāo)軸標(biāo)題文本內(nèi)容】 。 前面的小筆記已整理成目錄,可點(diǎn)鏈接去目錄尋找所需更方便。 【目錄部分內(nèi)容如下】【點(diǎn)擊此處可進(jìn)入目錄】 (1)如何安裝導(dǎo)入xlwings庫(kù); (2)如何在Wps下使用xlwings中

    2024年01月22日
    瀏覽(55)
  • python用 xlwings庫(kù)對(duì)Excel進(jìn)行 字體、邊框設(shè)置、合并單元格, 版本轉(zhuǎn)換等操作

    xlwings?其他的一些單元格讀取寫入操作網(wǎng)上很多, 下面就寫些如何設(shè)置單元格的? 字體對(duì)齊,字體大小、邊框, 合并單元格, ?這些設(shè)置。 顏色索引: 無(wú)色 = -4142, ??自動(dòng) = -4105,??黑色 = 1, 白色 = 2 ,????紅色 = 3,????鮮綠 = 4, 藍(lán)色 = 5 ,????黃色 = 6,????

    2024年02月11日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包