Python?Pandas中append方法舉例詳解
原理
append方法用于在Pandas DataFrame中追加行數(shù)據(jù)。它將另一個(gè)DataFrame、Series或類似字典的對象的數(shù)據(jù)添加到調(diào)用者DataFrame的末尾,返回一個(gè)新的DataFrame對象。
具體原理如下:
- 檢查傳入的
other參數(shù)是否為DataFrame、Series或類似字典的對象。 - 根據(jù)指定的參數(shù)進(jìn)行操作,將
other中的行追加到調(diào)用者DataFrame的末尾。 - 進(jìn)行數(shù)據(jù)對齊操作,確保列名一致。
- 返回一個(gè)新的DataFrame對象,其中包含調(diào)用者DataFrame和
other數(shù)據(jù)的行。
用法
DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=False)
other:要追加的DataFrame、Series或類似字典的對象。ignore_index:是否忽略索引,在結(jié)果中重新標(biāo)記行的索引,默認(rèn)為False。verify_integrity:如果為True,在創(chuàng)建具有重復(fù)索引的情況下會(huì)引發(fā)ValueError異常,默認(rèn)為False。sort:如果為True,則在列不對齊時(shí)對列進(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對象 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對象df1和df2,它們具有相同的列名和索引。然后,我們使用append方法將df2追加到df1的末尾,得到一個(gè)新的DataFrame對象df_appended。輸出結(jié)果顯示了追加行后的DataFrame對象。
接下來,我們創(chuàng)建了一個(gè)Series對象series,并使用append方法將其追加到df1的末尾,得到一個(gè)新的DataFrame對象df_appended_series。輸出結(jié)果顯示了追加Series后的DataFrame對象。
源碼分析
# 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() 方法無效
做畢設(shè)時(shí),需要實(shí)現(xiàn) DataFrame 新增一行的功能,百度到了 DataFrame 對象有 append() 方法可以用于新增一行,但是使用時(shí)發(fā)現(xiàn)居然無效,并且我也進(jìn)行了各種嘗試,例如給創(chuàng)建 DataFrame 時(shí)利用 colums=[] 給表頭賦值…結(jié)果還是沒用。
一開始還以為是網(wǎng)上寫錯(cuò)了,后來發(fā)現(xiàn)是自己的用法錯(cuò)了??!
問題解決
簡化一下問題,如果這么用是錯(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 對象
反思
其實(shí)這種函數(shù)的用法并不是一個(gè)少見的現(xiàn)象,學(xué)過的很多語言中的很多函數(shù)都是這么用的,然而我居然還在這上面折騰了好一會(huì)兒,實(shí)在是不應(yīng)該。
平時(shí)查資料時(shí),雖然閱讀速度要快,但是不要憑借自己的腦補(bǔ)去用函數(shù),還是應(yīng)該把函數(shù)的參數(shù)、返回值、用法給看清楚,再拿來用,以后不能犯這種低級(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python協(xié)程方式的實(shí)現(xiàn)及意義筆記分享
協(xié)程也被稱為微線程,是一種用戶態(tài)的上下文切換技術(shù),簡而言之,就是通過一個(gè)線程實(shí)現(xiàn)代碼互相切換執(zhí)行,本文主要給大家介紹實(shí)現(xiàn)協(xié)程的幾種方法2021-09-09
python?argparse的使用步驟(全網(wǎng)最全)
argparse是python的一個(gè)命令行參數(shù)解析包,在代碼需要頻繁修改參數(shù)時(shí),方便使用,主要用法就是在命令行輸入自己想要修改的參數(shù),這篇文章主要介紹了python?argparse的使用步驟(全網(wǎng)最全),需要的朋友可以參考下2023-04-04
Python中文分詞工具之結(jié)巴分詞用法實(shí)例總結(jié)【經(jīng)典案例】
這篇文章主要介紹了Python中文分詞工具之結(jié)巴分詞用法,結(jié)合實(shí)例形式總結(jié)分析了Python針對中文文件的讀取與分詞操作過程中遇到的問題與解決方法,需要的朋友可以參考下2017-04-04
使用Python實(shí)現(xiàn)不同需求的排行榜功能
這篇文章主要為大家介紹了Python實(shí)現(xiàn)不同需求的排行榜功能,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
Pandas數(shù)據(jù)類型自行變換及數(shù)據(jù)類型轉(zhuǎn)換失敗問題分析與解決
這篇文章主要介紹了Pandas數(shù)據(jù)類型自行變換及數(shù)據(jù)類型轉(zhuǎn)換失敗問題分析與解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
python實(shí)現(xiàn)將文件夾下面的不是以py文件結(jié)尾的文件都過濾掉的方法
今天小編就為大家分享一篇python實(shí)現(xiàn)將文件夾下面的不是以py文件結(jié)尾的文件都過濾掉的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
PyQt5實(shí)現(xiàn)暗黑風(fēng)格的計(jì)時(shí)器
這篇文章主要為大家詳細(xì)介紹了PyQt5實(shí)現(xiàn)暗黑風(fēng)格的計(jì)時(shí)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07

