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