pandas實(shí)現(xiàn)數(shù)據(jù)concat拼接的示例代碼
使用場(chǎng)景:批量拼接相同格式的excel、給DataFrame添加行、給DataFrame添加列等。
語(yǔ)法
使用某種方式合并方式(inner/outer)、沿著某個(gè)軸向(axis=0/1)、把多個(gè)Pandas對(duì)象(DataFrame/Seires)拼接成一個(gè)。
pandas.concat(objs, *, axis=0, join='outer', ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=None)
返回值:
- 當(dāng)沿索引(axis=0)連接所有 Series 時(shí),返回一個(gè) Series。
- 當(dāng) objs 中包含至少一個(gè) DataFrame 時(shí),返回一個(gè) DataFrame。
- 當(dāng)沿列(axis=1)連接時(shí),返回一個(gè) DataFrame。
參數(shù)說(shuō)明:
- objs:需要連接的對(duì)象(如 DataFrame 或 Series)的列表或字典。
- axis:指定連接軸。{0/’index’, 1/’columns’}, 默認(rèn)0。axis=0:沿行方向連接(垂直堆疊)。axis=1:沿列方向連接(水平堆疊)。
- join:指定連接方式,{‘inner’, ‘outer’},默認(rèn)為 ‘outer’。join=‘outer’:外連接,保留所有索引(默認(rèn))。join=‘inner’:內(nèi)連接,只保留共有索引。
- ignore_index:是否忽略原始索引并生成新的整數(shù)索引。bool,默認(rèn)為 False。ignore_index=True:忽略原始索引,生成新的整數(shù)索引。ignore_index=False:保留原始索引。
- keys:為連接后的對(duì)象添加外層索引(多層索引)。list 或 tuple。
- levels:與 keys 參數(shù)配合使用,指定多層索引的具體層級(jí)。list 或 tuple。
- names:為多層索引的層級(jí)命名。list 或 tuple。
- verify_integrity:是否檢查新索引是否有重復(fù)。bool,默認(rèn)為 False。
- sort:是否對(duì)非連接軸進(jìn)行排序。bool,默認(rèn)為 False。
- copy:是否復(fù)制數(shù)據(jù)。bool,默認(rèn)為 True。
示例:使用pandas.concat合并數(shù)據(jù)
第1個(gè)DataFrame:
import pandas as pd
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'], 'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3']})
查看數(shù)據(jù):

第2個(gè)DataFrame:
df2 = pd.DataFrame({'B': ['B4', 'B5', 'B6', 'B7'], 'C': ['C4', 'C5', 'C6', 'C7'], 'D': ['D4', 'D5', 'D6', 'D7'], 'E': ['E4', 'E5', 'E6', 'E7']})
查看結(jié)果:

默認(rèn)的concat:參數(shù)axis=0,join=‘outer’,ignore_index=False
pd.concat([df1, df2])
合并后的結(jié)果:

使用ignore_index=True參數(shù)可以忽略原來(lái)的索引
pd.concat([df1, df2], ignore_index=True)
合并后的數(shù)據(jù):

使用join='inner’參數(shù)過(guò)濾掉不匹配的列
pd.concat([df1, df2], ignore_index=True, join='inner')
合并后的數(shù)據(jù):

使用axis=1相當(dāng)于添加新列
添加一列Series
DataFrame:

再構(gòu)造一個(gè)Series:
s1 = pd.Series(list(range(10, 14)), name='F')

按列合并:
pd.concat([df1, s1], axis=1)
合并后的結(jié)果:

添加多列Series
DataFrame:

第1個(gè)Series:

第2個(gè)Series:
s2 = df1.apply(lambda x : x['D'] + '_G', axis=1) s2.name = 'G'

合并1個(gè)DataFrame和2個(gè)Series:
pd.concat([df1, s1, s2], axis=1)
合并后的結(jié)果:

concat的要合并的對(duì)象參數(shù)可以只包含Series列表


合并兩個(gè)Series:
pd.concat([s1, s2], axis=1)
合并后的結(jié)果:

concat的要合并的對(duì)象參數(shù)DataFrame和Series順序可以混合
要合并的DataFrame:

要合并的Series:

要合并的Series:

合并數(shù)據(jù):
pd.concat([s1, df1, s2], axis=1)
合并后的結(jié)果:

一行一行給DataFrame添加數(shù)據(jù)
先生成一個(gè)空的DataFrame:
df = pd.DataFrame(columns=['S'])

利用concat可以接受對(duì)象列表的特點(diǎn),進(jìn)行拼接:
pd.concat([pd.DataFrame([i], columns=['S']) for i in range(6)], ignore_index=True)
拼接后的結(jié)果:

到此這篇關(guān)于pandas實(shí)現(xiàn)數(shù)據(jù)concat拼接的示例代碼的文章就介紹到這了,更多相關(guān)pandas concat拼接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)文本數(shù)據(jù)讀寫方法的完全指南
在當(dāng)今數(shù)據(jù)驅(qū)動(dòng)的世界中,文本數(shù)據(jù)處理是每個(gè)Python開(kāi)發(fā)者必須掌握的核心技能,本文將深入解析Python文本讀寫的完整技術(shù)體系,有需要的小伙伴可以了解下2025-09-09
Python操作SQLite數(shù)據(jù)庫(kù)的方法詳解
這篇文章主要介紹了Python操作SQLite數(shù)據(jù)庫(kù)的方法,較為詳細(xì)的分析了Python安裝sqlite數(shù)據(jù)庫(kù)模塊及針對(duì)sqlite數(shù)據(jù)庫(kù)的常用操作技巧,需要的朋友可以參考下2017-06-06
Django中的CACHE_BACKEND參數(shù)和站點(diǎn)級(jí)Cache設(shè)置
這篇文章主要介紹了Django中的CACHE_BACKEND參數(shù)和站點(diǎn)級(jí)Cache設(shè)置,Python是最具人氣的Python web框架,需要的朋友可以參考下2015-07-07
Python數(shù)據(jù)分析之如何利用pandas查詢數(shù)據(jù)示例代碼
查詢和分析數(shù)據(jù)是pandas的重要功能,也是我們學(xué)習(xí)pandas的基礎(chǔ),下面這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)分析之如何利用pandas查詢數(shù)據(jù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-09-09
Python中zip()函數(shù)的簡(jiǎn)單用法舉例
這篇文章主要給大家介紹了關(guān)于Python中zip()函數(shù)的簡(jiǎn)單用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
提升?Python?代碼運(yùn)行速度的6個(gè)技巧
本文分享了提升?Python?代碼運(yùn)行速度的6個(gè)技巧,Python?比我們想象的運(yùn)行的要快。我們之所以有先入為主的認(rèn)為Python運(yùn)行慢,可能是我們平常的誤用和缺乏使用技巧知識(shí)。接下來(lái)讓我們看看如何用一些簡(jiǎn)單的Trick來(lái)提高我們程序的運(yùn)行性能,需要的朋友可以參考一下2022-01-01

