基于Pandas實(shí)現(xiàn)豎向拼接多個(gè)DataFrame對象的幾種常用方法
在Python中,可以使用pandas庫的concat()函數(shù)或append()方法來豎向(按行)拼接多個(gè)DataFrame對象。以下是幾種常用的方法:
方法1:使用pd.concat()
import pandas as pd
# 創(chuàng)建示例DataFrame
df1 = pd.DataFrame({'A': ['A0', 'A1'], 'B': ['B0', 'B1']})
df2 = pd.DataFrame({'A': ['A2', 'A3'], 'B': ['B2', 'B3']})
df3 = pd.DataFrame({'A': ['A4', 'A5'], 'B': ['B4', 'B5']})
# 豎向拼接
result = pd.concat([df1, df2, df3], axis=0) # axis=0是默認(rèn)值,可以省略
print(result)
輸出:
A B 0 A0 B0 1 A1 B1 0 A2 B2 1 A3 B3 0 A4 B4 1 A5 B5
方法2:使用append()方法(已棄用,推薦使用concat)
# 注意:append()在pandas 2.0版本中已被棄用 result = df1.append([df2, df3], ignore_index=True) print(result)
方法3:使用concat()并重置索引
result = pd.concat([df1, df2, df3], ignore_index=True) print(result)
輸出:
A B 0 A0 B0 1 A1 B1 2 A2 B2 3 A3 B3 4 A4 B4 5 A5 B5
高級用法
處理不同列的DataFrame:
df4 = pd.DataFrame({'A': ['A6', 'A7'], 'C': ['C6', 'C7']})
result = pd.concat([df1, df4], sort=False)
print(result)
添加區(qū)分鍵:
result = pd.concat([df1, df2, df3], keys=['df1', 'df2', 'df3']) print(result)
使用join參數(shù)處理不同列:
# 內(nèi)連接,只保留共有的列 result = pd.concat([df1, df4], join='inner')
注意事項(xiàng)
- 默認(rèn)情況下,
concat()會保留原始索引,可以使用ignore_index=True重新生成連續(xù)索引 - 如果DataFrame的列不完全相同,可以使用
sort=False避免列自動(dòng)排序 - 對于大量DataFrame拼接,考慮使用生成器表達(dá)式而不是列表推導(dǎo)式以節(jié)省內(nèi)存
性能考慮
對于大量DataFrame的拼接,可以先將它們放入列表中,然后一次性拼接:
dfs = [df1, df2, df3] # 可以是任意數(shù)量的DataFrame result = pd.concat(dfs, ignore_index=True)
這種方法比逐個(gè)追加更高效。
到此這篇關(guān)于基于Pandas實(shí)現(xiàn)豎向拼接多個(gè)DataFrame對象的幾種常用方法的文章就介紹到這了,更多相關(guān)Pandas豎向拼接DataFrame對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
VSCode搭建Django開發(fā)環(huán)境的圖文步驟
本篇介紹在vscode環(huán)境下搭建Django開發(fā)環(huán)境的詳細(xì)步驟,包括Python、Django、VSCode等,以及它們的安裝和配置方法,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09
python類參數(shù)定義及數(shù)據(jù)擴(kuò)展方式unsqueeze/expand
本文主要介紹了python類參數(shù)定義及數(shù)據(jù)擴(kuò)展方式unsqueeze/expand,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08
Python爬蟲使用bs4方法實(shí)現(xiàn)數(shù)據(jù)解析
這篇文章主要介紹了Python爬蟲使用bs4方法實(shí)現(xiàn)數(shù)據(jù)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
Python圖像處理之圖像算術(shù)與邏輯運(yùn)算詳解
這篇文章將詳細(xì)講解圖像算法運(yùn)算與邏輯運(yùn)算,包括圖像加法、圖像減法、圖像與運(yùn)算、圖像或運(yùn)算、圖像非運(yùn)算與圖像異或運(yùn)算。感興趣的可以了解一下2022-01-01
Python實(shí)現(xiàn)一個(gè)帶權(quán)無回置隨機(jī)抽選函數(shù)的方法
這篇文章主要介紹了Python實(shí)現(xiàn)一個(gè)帶權(quán)無回置隨機(jī)抽選函數(shù)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
matplotlib 向任意位置添加一個(gè)子圖(axes)
這篇文章主要介紹了matplotlib 向任意位置添加一個(gè)子圖(axes),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
python Requsets下載開源網(wǎng)站的代碼(帶索引 數(shù)據(jù))
這篇文章主要介紹了python Requsets下載開源網(wǎng)站的代碼(帶索引 數(shù)據(jù)),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04

