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

Pandas DataFrame進行數(shù)據(jù)拼接方法詳解

 更新時間:2025年11月05日 15:24:41   作者:Humbunklung  
這篇文章主要為大家詳細(xì)介紹了Pandas DataFrame進行數(shù)據(jù)拼接多種方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

在Pandas中拼接DataFrame是數(shù)據(jù)整合的核心操作,以下是一些拼接方法及代碼示例

1.concat():沿軸拼接多個DataFrame

適用于結(jié)構(gòu)相似的數(shù)據(jù)集(相同列或相同索引),支持縱向(行)或橫向(列)拼接。

參數(shù)關(guān)鍵點

  • axis=0(默認(rèn)):縱向拼接(增加行);axis=1:橫向拼接(增加列)。
  • join='outer':保留所有行列(缺值填NaN);join='inner':僅保留共有行列。
  • ignore_index=True:重置索引,避免重復(fù)。
  • keys:添加分層索引,標(biāo)記來源。

代碼示例

import pandas as pd

# 縱向拼接(行追加)
df1 = pd.DataFrame({'A': ['A0', 'A1'], 'B': ['B0', 'B1']})
df2 = pd.DataFrame({'A': ['A2', 'A3'], 'B': ['B2', 'B3']})
result_vertical = pd.concat([df1, df2], ignore_index=True)

結(jié)果如下:

AB
0A0B0
1A1B1
2A2B2
3A3B3
# 橫向拼接(列合并)
df3 = pd.DataFrame({'C': ['C0', 'C1'], 'D': ['D0', 'D1']}, index=[0,1])
result_horizontal = pd.concat([df1, df3], axis=1)

結(jié)果如下:

ABCD
0A0B0C0D0
1A1B1C1D1

2.merge():基于鍵值合并(類似SQL JOIN)

適用于關(guān)聯(lián)不同結(jié)構(gòu)的數(shù)據(jù)集,通過共享列(鍵)連接。

參數(shù)關(guān)鍵點

  • how:連接方式(inner、left、right、outer)。
  • on:指定連接鍵列名;left_on/right_on:左右表鍵名不同時使用。
  • left_index/right_index=True:用索引作為連接鍵。

代碼示例

# 內(nèi)連接(保留共有鍵)
left = pd.DataFrame({'key': ['K0', 'K1'], 'A': ['A0', 'A1']})
right = pd.DataFrame({'key': ['K0', 'K2'], 'B': ['B0', 'B2']})
result_inner = pd.merge(left, right, on='key', how='inner')

結(jié)果如下:

keyAB
0K0A0B0
# 外連接(保留所有鍵,缺值填NaN)
result_outer = pd.merge(left, right, on='key', how='outer')

result_outer

結(jié)果如下:

keyAB
0K0A0B0
1K1A1NaN
2K2NaNB2

3.join():基于索引快速連接

merge的簡化版,默認(rèn)按索引拼接,適合索引對齊的場景。

參數(shù)關(guān)鍵點

  • how:連接方式(默認(rèn)左連接)。
  • lsuffix/rsuffix:左右表列名沖突時添加后綴。

代碼示例

left_df = pd.DataFrame({'value': [1, 2]}, index=['A', 'B'])
right_df = pd.DataFrame({'value': [7, 8]}, index=['A', 'C'])
joined = left_df.join(right_df, how='inner', lsuffix='_left', rsuffix='_right')

joined

結(jié)果如下:

value_leftvalue_right
A17

4.combine_first():填充缺失值

用第二個DataFrame的非空值補全第一個DataFrame的NaN,適合數(shù)據(jù)補全。

代碼示例

df1 = pd.DataFrame({'A': [1, None, 3], 'B': [4, 5, None]}, index=['X', 'Y', 'Z'])
df2 = pd.DataFrame({'A': [None, 10, 11], 'B': [7, 8, 9]}, index=['Y', 'Z', 'W'])
filled = df1.combine_first(df2)

filled

結(jié)果如下:

AB
W11.09.0
X1.04.0
YNaN5.0
Z3.08.0

性能與場景對比

方法適用場景性能優(yōu)勢
concat()同構(gòu)數(shù)據(jù)批量拼接(行/列擴展)????(高效批處理)
merge()異構(gòu)數(shù)據(jù)關(guān)聯(lián)(類似SQL JOIN)???(靈活但稍慢)
join()索引對齊的快速合并????(索引優(yōu)化)
combine_first()缺失值填充(非拼接主導(dǎo))??

高效建議

  • 批量縱向拼接優(yōu)先用concat(ignore_index=True)
  • 關(guān)聯(lián)查詢用merge并明確指定on鍵;
  • 避免已棄用的append(),用concat替代。

通過以上方法,可靈活應(yīng)對DataFrame拼接需求,平衡效率與功能。

到此這篇關(guān)于Pandas DataFrame進行數(shù)據(jù)拼接方法詳解的文章就介紹到這了,更多相關(guān)Pandas DataFrame數(shù)據(jù)拼接內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用PyWeChatSpy自動回復(fù)微信拍一拍功能的實現(xiàn)代碼

    使用PyWeChatSpy自動回復(fù)微信拍一拍功能的實現(xiàn)代碼

    這篇文章主要介紹了用PyWeChatSpy自動回復(fù)微信拍一拍功能,本文通過實例圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Python解壓zip文件名亂碼問題的具體分析和解決方案

    Python解壓zip文件名亂碼問題的具體分析和解決方案

    使用Python處理含有中文文件名的壓縮文件時,這些中文文件名會出現(xiàn)亂碼,今天我們就來看一下如何來解決這個亂碼的問題,以下是具體分析和解決方案,需要的朋友可以參考下
    2025-09-09
  • Pandas中resample方法詳解

    Pandas中resample方法詳解

    這篇文章主要介紹了Pandas中resample方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 深入理解Python中各種方法的運作原理

    深入理解Python中各種方法的運作原理

    這篇文章主要介紹了深入理解Python中各種方法的運作原理,包括抽象方法和靜態(tài)方法和類方法等之間異同的比較,需要的朋友可以參考下
    2015-06-06
  • Python3中的真除和Floor除法用法分析

    Python3中的真除和Floor除法用法分析

    這篇文章主要介紹了Python3中的真除和Floor除法用法,結(jié)合實例形式分析了真除與Floor除法的區(qū)別與使用技巧,需要的朋友可以參考下
    2016-03-03
  • pandas 數(shù)據(jù)歸一化以及行刪除例程的方法

    pandas 數(shù)據(jù)歸一化以及行刪除例程的方法

    今天小編就為大家分享一篇pandas 數(shù)據(jù)歸一化以及行刪除例程的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python中類創(chuàng)建和實例化的過程詳解

    Python中類創(chuàng)建和實例化的過程詳解

    這篇文章主要介紹了Python中類創(chuàng)建和實例化過程,文中通過代碼示例講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-06-06
  • 使用Python腳本來獲取Cisco設(shè)備信息的示例

    使用Python腳本來獲取Cisco設(shè)備信息的示例

    這篇文章主要介紹了編寫Python腳本來獲取Python腳本來獲取Cisco設(shè)備信息的教程,文中的示例是獲取一臺思科交換機的腳本,需要的朋友可以參考下
    2015-05-05
  • pytorch實現(xiàn)ResNet結(jié)構(gòu)的實例代碼

    pytorch實現(xiàn)ResNet結(jié)構(gòu)的實例代碼

    ResNet網(wǎng)絡(luò)可以達到很深的層數(shù)的原因就是不斷的堆疊殘差結(jié)構(gòu)而來的,接下來通過本文給大家介紹pytorch實現(xiàn)ResNet結(jié)構(gòu)的示例代碼,喜歡的朋友跟隨小編一起看看吧
    2021-05-05
  • Python編程使用*解包和itertools.product()求笛卡爾積的方法

    Python編程使用*解包和itertools.product()求笛卡爾積的方法

    這篇文章主要介紹了Python編程使用*解包和itertools.product()求笛卡爾積的方法,涉及Python列表轉(zhuǎn)換及itertools.product()求笛卡爾積相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12

最新評論