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

