Python?Pandas中append方法舉例詳解
原理
append
方法用于在Pandas DataFrame中追加行數(shù)據(jù)。它將另一個(gè)DataFrame、Series或類似字典的對(duì)象的數(shù)據(jù)添加到調(diào)用者DataFrame的末尾,返回一個(gè)新的DataFrame對(duì)象。
具體原理如下:
- 檢查傳入的
other
參數(shù)是否為DataFrame、Series或類似字典的對(duì)象。 - 根據(jù)指定的參數(shù)進(jìn)行操作,將
other
中的行追加到調(diào)用者DataFrame的末尾。 - 進(jìn)行數(shù)據(jù)對(duì)齊操作,確保列名一致。
- 返回一個(gè)新的DataFrame對(duì)象,其中包含調(diào)用者DataFrame和
other
數(shù)據(jù)的行。
用法
DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=False)
other
:要追加的DataFrame、Series或類似字典的對(duì)象。ignore_index
:是否忽略索引,在結(jié)果中重新標(biāo)記行的索引,默認(rèn)為False。verify_integrity
:如果為T(mén)rue,在創(chuàng)建具有重復(fù)索引的情況下會(huì)引發(fā)ValueError異常,默認(rèn)為False。sort
:如果為T(mén)rue,則在列不對(duì)齊時(shí)對(duì)列進(jìn)行排序,默認(rèn)為False。
示例(含結(jié)果輸出)
以下是使用append
方法的示例代碼和結(jié)果輸出:
import pandas as pd # 創(chuàng)建第一個(gè)DataFrame df1 = pd.DataFrame([[1, 2], [3, 4]], columns=['A', 'B'], index=['x', 'y']) print(df1) # 輸出: # A B # x 1 2 # y 3 4 # 創(chuàng)建第二個(gè)DataFrame df2 = pd.DataFrame([[5, 6], [7, 8]], columns=['A', 'B'], index=['x', 'y']) print(df2) # 輸出: # A B # x 5 6 # y 7 8 # 使用append方法將df2追加到df1末尾 df_appended = df1.append(df2) print(df_appended) # 輸出: # A B # x 1 2 # y 3 4 # x 5 6 # y 7 8 # 創(chuàng)建一個(gè)Series對(duì)象 series = pd.Series([9, 10], name='C') print(series) # 輸出: # 0 9 # 1 10 # Name: C, dtype: int64 # 使用append方法將series追加到df1末尾 df_appended_series = df1.append(series) print(df_appended_series) # 輸出: # A B # x 1.0 2 # y 3.0 4 # 0 NaN NaN # 1 NaN NaN
在上述示例中,我們首先創(chuàng)建了兩個(gè)DataFrame對(duì)象df1
和df2
,它們具有相同的列名和索引。然后,我們使用append
方法將df2
追加到df1
的末尾,得到一個(gè)新的DataFrame對(duì)象df_appended
。輸出結(jié)果顯示了追加行后的DataFrame對(duì)象。
接下來(lái),我們創(chuàng)建了一個(gè)Series對(duì)象series
,并使用append
方法將其追加到df1
的末尾,得到一個(gè)新的DataFrame對(duì)象df_appended_series
。輸出結(jié)果顯示了追加Series后的DataFrame對(duì)象。
源碼分析
# append方法的源碼分析 def append(self, other, ignore_index=False, verify_integrity=False, sort=False): # ... 省略部分代碼 ... return self._append(other, ignore_index=ignore_index, verify_integrity=verify_integrity, sort=sort)
在Pandas中,append
方法實(shí)際上是調(diào)用了_append
方法進(jìn)行實(shí)際的追加操作。
附:Python DataFrame 的 append() 方法無(wú)效
做畢設(shè)時(shí),需要實(shí)現(xiàn) DataFrame 新增一行的功能,百度到了 DataFrame 對(duì)象有 append()
方法可以用于新增一行,但是使用時(shí)發(fā)現(xiàn)居然無(wú)效,并且我也進(jìn)行了各種嘗試,例如給創(chuàng)建 DataFrame 時(shí)利用 colums=[]
給表頭賦值…結(jié)果還是沒(méi)用。
一開(kāi)始還以為是網(wǎng)上寫(xiě)錯(cuò)了,后來(lái)發(fā)現(xiàn)是自己的用法錯(cuò)了!!
問(wèn)題解決
簡(jiǎn)化一下問(wèn)題,如果這么用是錯(cuò)誤的:
df = pd.DataFrame() df2 = pd.DataFrame([[1, 2], [3, 4]], columns=['A', 'B']) df.append(df2) print(df)
這樣會(huì)發(fā)現(xiàn)結(jié)果永遠(yuǎn)是 Empty?。?!
真正的用法如下:
df = pd.DataFrame() df2 = pd.DataFrame([[1, 2], [3, 4]], columns=['A', 'B']) df = df.append(df2) print(df)
核心在于 df.append(df2)
不會(huì)改變 df 本身,返回值才是合并后的 DataFrame 對(duì)象
反思
其實(shí)這種函數(shù)的用法并不是一個(gè)少見(jiàn)的現(xiàn)象,學(xué)過(guò)的很多語(yǔ)言中的很多函數(shù)都是這么用的,然而我居然還在這上面折騰了好一會(huì)兒,實(shí)在是不應(yīng)該。
平時(shí)查資料時(shí),雖然閱讀速度要快,但是不要憑借自己的腦補(bǔ)去用函數(shù),還是應(yīng)該把函數(shù)的參數(shù)、返回值、用法給看清楚,再拿來(lái)用,以后不能犯這種低級(jí)錯(cuò)誤。
官方鏈接
pandas.DataFrame.append - 官方文檔:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.append.html
總結(jié)
到此這篇關(guān)于Python Pandas中append方法舉例的文章就介紹到這了,更多相關(guān)Pandas append方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)的陽(yáng)歷轉(zhuǎn)陰歷(農(nóng)歷)算法
這篇文章主要介紹了python實(shí)現(xiàn)的陽(yáng)歷轉(zhuǎn)陰歷(農(nóng)歷)算法,需要的朋友可以參考下2014-04-04Python如何利用正則表達(dá)式爬取網(wǎng)頁(yè)信息及圖片
這篇文章主要給大家介紹了關(guān)于Python如何利用正則表達(dá)式爬取網(wǎng)頁(yè)信息及圖片的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04linux環(huán)境下的python安裝過(guò)程圖解(含setuptools)
這篇文章主要介紹了linux環(huán)境下的python安裝過(guò)程圖解(含setuptools),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11python數(shù)據(jù)分析Numpy庫(kù)的常用操作
numpy 是 Python 的一個(gè)科學(xué)計(jì)算的庫(kù),提供了矩陣運(yùn)算的功能,其一般與 Scipy、matplotlib 一起使用,這篇文章總結(jié)下python數(shù)據(jù)分析Numpy庫(kù)的常用操作,感興趣的朋友一起看看吧2022-01-01python3實(shí)現(xiàn)讀取chrome瀏覽器cookie
這里給大家分享的是python3讀取chrome瀏覽器的cookie(CryptUnprotectData解密)的代碼,主要思路是讀取到的cookies被封裝成字典,可以直接給requests使用。2016-06-06pycharm配置SSH遠(yuǎn)程連接服務(wù)器詳細(xì)步驟(0基礎(chǔ)詳細(xì)版)
PyCharm是一款流行的Python集成開(kāi)發(fā)環(huán)境(IDE),提供了遠(yuǎn)程連接云服務(wù)器的功能,使得開(kāi)發(fā)者可以更加便捷地進(jìn)行遠(yuǎn)程開(kāi)發(fā)和調(diào)試,這篇文章主要給大家介紹了關(guān)于pycharm配置SSH遠(yuǎn)程連接服務(wù)器的詳細(xì)步驟,需要的朋友可以參考下2024-07-07python中WSGI是什么,Python應(yīng)用WSGI詳解
這篇文章主要介紹一下python中的WSGI, 小編在網(wǎng)上找了幾篇非常好的關(guān)于WSGI介紹,整理一下分享給大家。2017-11-11Python實(shí)現(xiàn)的一個(gè)自動(dòng)售飲料程序代碼分享
這篇文章主要介紹了Python實(shí)現(xiàn)的一個(gè)自動(dòng)售飲料程序代碼分享,就是用python實(shí)現(xiàn)的生活中一種投幣式自動(dòng)售飲料機(jī)的內(nèi)部程序判斷代碼,需要的朋友可以參考下2014-08-08