欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python?pandas實(shí)現(xiàn)數(shù)據(jù)Concat拼接的完整指南

 更新時(shí)間:2025年06月12日 09:13:22   作者:酷愛碼  
Pandas是Python中用于數(shù)據(jù)分析的核心庫之一,其concat()函數(shù)是數(shù)據(jù)合并操作的核心工具,本文將通過示例代碼和參數(shù)解析,全面介紹concat()的用法,有需要的可以了解下

Pandas是Python中用于數(shù)據(jù)分析的核心庫之一,其concat()函數(shù)是數(shù)據(jù)合并操作的核心工具。無論是縱向(行方向)還是橫向(列方向)拼接,concat()都能靈活處理多個(gè)數(shù)據(jù)集的整合需求。本文將通過示例代碼和參數(shù)解析,全面介紹concat()的用法,幫助開發(fā)者掌握數(shù)據(jù)拼接的核心技巧。

一、Concat函數(shù)的基本用法

1. 垂直拼接(縱向合并)

默認(rèn)情況下,concat()會(huì)按行方向(axis=0)合并多個(gè)DataFrame,保留所有行索引。

示例代碼

import pandas as pd

# 創(chuàng)建兩個(gè)DataFrame
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})

# 垂直拼接
result = pd.concat([df1, df2])
print(result)

輸出結(jié)果

   A  B
0  1  3
1  2  4
0  5  7
1  6  8

關(guān)鍵點(diǎn)

  • 索引保留:默認(rèn)保留原始DataFrame的索引(如上例中的0和1)。
  • 列對(duì)齊:要求所有DataFrame的列名一致,否則會(huì)用NaN填充缺失列。

2. 水平拼接(橫向合并)

通過設(shè)置參數(shù)axis=1,可以按列方向合并多個(gè)DataFrame。

示例代碼

# 創(chuàng)建兩個(gè)DataFrame
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}, index=[0, 1])
df2 = pd.DataFrame({'C': [5, 6], 'D': [7, 8]}, index=[0, 1])

# 水平拼接
result = pd.concat([df1, df2], axis=1)
print(result)

輸出結(jié)果

   A  B  C  D
0  1  3  5  7
1  2  4  6  8

關(guān)鍵點(diǎn)

索引對(duì)齊:要求所有DataFrame的行索引一致,否則會(huì)用NaN填充缺失值。

列擴(kuò)展:合并后的DataFrame會(huì)包含所有原始列。

二、Concat函數(shù)的核心參數(shù)

1. ignore_index=True:重置索引

默認(rèn)情況下,concat()會(huì)保留原始索引。若需生成連續(xù)的新索引,可設(shè)置ignore_index=True。

示例代碼

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

輸出結(jié)果

   A  B
0  1  3
1  2  4
2  5  7
3  6  8

2. join='inner'與join='outer':控制列的合并方式

join='outer'(默認(rèn)):保留所有列,缺失值用NaN填充。

join='inner':僅保留共同列,過濾掉不匹配的列。

示例代碼

# df1和df2的列不完全一致
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'B': [5, 6], 'C': [7, 8]})

# 外連接(默認(rèn))
result_outer = pd.concat([df1, df2], join='outer')
print("外連接結(jié)果:")
print(result_outer)

# 內(nèi)連接
result_inner = pd.concat([df1, df2], join='inner')
print("內(nèi)連接結(jié)果:")
print(result_inner)

輸出結(jié)果

外連接結(jié)果:
   A  B    C
0  1  3  NaN
1  2  4  NaN
0  NaN  5  7.0
1  NaN  6  8.0

內(nèi)連接結(jié)果:
   B
0  3
1  4
0  5
1  6

3. keys:添加層次化索引

通過keys參數(shù),可以為合并后的數(shù)據(jù)添加層級(jí)索引,便于后續(xù)篩選。

示例代碼

result = pd.concat([df1, df2], keys=['df1', 'df2'])
print(result)

輸出結(jié)果

       A    B
df1 0   1  3.0
    1   2  4.0
df2 0  NaN  5.0
    1  NaN  6.0

三、實(shí)際應(yīng)用案例

案例1:合并不同列的數(shù)據(jù)

當(dāng)兩個(gè)DataFrame的列不完全一致時(shí),concat()仍能靈活處理。

示例代碼

# df1包含'A'和'B'列,df2包含'B'和'C'列
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'B': [5, 6], 'C': [7, 8]})

# 合并后保留所有列
result = pd.concat([df1, df2], axis=0)
print(result)

輸出結(jié)果

     A  B    C
0  1.0  3  NaN
1  2.0  4  NaN
0  NaN  5  7.0
1  NaN  6  8.0

案例2:合并多層索引的DataFrame

concat()支持多層索引(MultiIndex)的合并操作。

示例代碼

# 創(chuàng)建具有多層索引的DataFrame
index = pd.MultiIndex.from_tuples([('x', 'a'), ('x', 'b'), ('y', 'a'), ('y', 'b')])
df1 = pd.DataFrame({'data': [1, 2, 3, 4]}, index=index)
df2 = pd.DataFrame({'data_2': [5, 6, 7, 8]}, index=index)

# 合并
result = pd.concat([df1, df2], axis=1)
print(result)

輸出結(jié)果

           data  data_2
x a      1.0     5
  b      2.0     6
y a      3.0     7
  b      4.0     8

四、Concat與Merge的區(qū)別

特性concat()merge()
合并方式按軸拼接(行或列)按鍵連接(類似SQL的JOIN)
適用場景數(shù)據(jù)結(jié)構(gòu)簡單,直接拼接需要基于共同鍵關(guān)聯(lián)數(shù)據(jù)
索引處理保留或重置索引忽略索引,基于列匹配
復(fù)雜度簡單,適合快速拼接復(fù)雜,適合關(guān)聯(lián)不同數(shù)據(jù)源

五、注意事項(xiàng)與性能優(yōu)化

1. 索引對(duì)齊問題

外連接(join='outer')可能導(dǎo)致大量NaN值,需根據(jù)業(yè)務(wù)需求選擇連接方式。

內(nèi)連接(join='inner')會(huì)過濾掉不匹配的數(shù)據(jù),適用于嚴(yán)格匹配場景。

2. 性能問題

內(nèi)存消耗:concat()會(huì)在內(nèi)存中創(chuàng)建新對(duì)象,大數(shù)據(jù)量下可能導(dǎo)致性能下降。

優(yōu)化建議:

  • 使用ignore_index=True避免索引重復(fù)。
  • 對(duì)于頻繁合并操作,優(yōu)先使用DataFrame.loc或merge()。

3. 數(shù)據(jù)類型一致性

合并前需確保列的數(shù)據(jù)類型一致,否則可能引發(fā)隱式轉(zhuǎn)換或錯(cuò)誤。

六、總結(jié)

Pandas的concat()函數(shù)是數(shù)據(jù)拼接的“瑞士軍刀”,通過靈活的參數(shù)組合,可以滿足從簡單合并到復(fù)雜數(shù)據(jù)整合的多種需求。掌握其核心參數(shù)(如axis、join、keys)和實(shí)際應(yīng)用場景,是高效處理數(shù)據(jù)的關(guān)鍵。

下一步學(xué)習(xí)建議:

  • 學(xué)習(xí)merge()函數(shù),掌握基于鍵的關(guān)聯(lián)操作。
  • 結(jié)合groupby()和pivot_table(),探索更復(fù)雜的數(shù)據(jù)分析場景。

到此這篇關(guān)于python pandas實(shí)現(xiàn)數(shù)據(jù)Concat拼接的完整指南的文章就介紹到這了,更多相關(guān)pandas數(shù)據(jù)concat拼接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python3.7.0 Shell添加清屏快捷鍵的實(shí)現(xiàn)示例

    Python3.7.0 Shell添加清屏快捷鍵的實(shí)現(xiàn)示例

    這篇文章主要介紹了Python3.7.0 Shell添加清屏快捷鍵的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 基于windows下pip安裝python模塊時(shí)報(bào)錯(cuò)總結(jié)

    基于windows下pip安裝python模塊時(shí)報(bào)錯(cuò)總結(jié)

    今天小編就為大家分享一篇基于windows下pip安裝python模塊時(shí)報(bào)錯(cuò)總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • python實(shí)現(xiàn)簡單的貪吃蛇游戲

    python實(shí)現(xiàn)簡單的貪吃蛇游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡單的貪吃蛇游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Django中如何使用Celery執(zhí)行異步任務(wù)

    Django中如何使用Celery執(zhí)行異步任務(wù)

    這篇文章主要介紹了Django中如何使用Celery執(zhí)行異步任務(wù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Python淘寶秒殺的腳本實(shí)現(xiàn)

    Python淘寶秒殺的腳本實(shí)現(xiàn)

    這篇文章主要介紹了Python淘寶秒殺的腳本實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • CentOS6.9 Python環(huán)境配置(python2.7、pip、virtualenv)

    CentOS6.9 Python環(huán)境配置(python2.7、pip、virtualenv)

    這篇文章主要介紹了CentOS6.9 Python環(huán)境配置(python2.7、pip、virtualenv)方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-05-05
  • python 利用for循環(huán) 保存多個(gè)圖像或者文件的實(shí)例

    python 利用for循環(huán) 保存多個(gè)圖像或者文件的實(shí)例

    今天小編就為大家分享一篇python 利用for循環(huán) 保存多個(gè)圖像或者文件的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python3實(shí)現(xiàn)計(jì)算兩個(gè)數(shù)組的交集算法示例

    Python3實(shí)現(xiàn)計(jì)算兩個(gè)數(shù)組的交集算法示例

    這篇文章主要介紹了Python3實(shí)現(xiàn)計(jì)算兩個(gè)數(shù)組的交集算法,結(jié)合2個(gè)實(shí)例形式總結(jié)分析了Python3針對(duì)數(shù)組的遍歷、位運(yùn)算以及元素的添加、刪除等相關(guān)操作技巧,需要的朋友可以參考下
    2019-04-04
  • Python中防止sql注入的方法詳解

    Python中防止sql注入的方法詳解

    SQL注入是比較常見的網(wǎng)絡(luò)攻擊方式之一,它不是利用操作系統(tǒng)的BUG來實(shí)現(xiàn)攻擊,而是針對(duì)程序員編程時(shí)的疏忽,通過SQL語句,實(shí)現(xiàn)無帳號(hào)登錄,甚至篡改數(shù)據(jù)庫。下面這篇文章主要給大家介紹了關(guān)于Python中防止sql注入的方法,需要的朋友可以參考下。
    2017-02-02
  • python如何以表格形式打印輸出的方法示例

    python如何以表格形式打印輸出的方法示例

    這篇文章主要介紹了python如何以表格形式打印輸出的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-06-06

最新評(píng)論