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ù)(def)及參數(shù)傳遞操作
這篇文章主要介紹了淺談Python中的函數(shù)(def)及參數(shù)傳遞操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05關(guān)于pytorch多GPU訓(xùn)練實(shí)例與性能對(duì)比分析
今天小編就為大家分享一篇關(guān)于pytorch多GPU訓(xùn)練實(shí)例與性能對(duì)比分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08pandas dataframe的合并實(shí)現(xiàn)(append, merge, concat)
這篇文章主要介紹了pandas dataframe的合并實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06使用Python多線(xiàn)程爬蟲(chóng)爬取電影天堂資源
這篇文章主要介紹了使用Python多線(xiàn)程爬蟲(chóng)爬取電影天堂資源 的相關(guān)資料,需要的朋友可以參考下2016-09-09