欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python?Pandas中append方法舉例詳解

 更新時(shí)間:2023年12月11日 16:10:53   作者:wang2leee  
這篇文章主要給大家介紹了關(guān)于Python?Pandas中append方法的相關(guān)資料,在Pandas中append()方法用于將一個(gè)或多個(gè)DataFrame或Series添加到DataFrame中,需要的朋友可以參考下

原理

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ì)象df1df2,它們具有相同的列名和索引。然后,我們使用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)文章

最新評(píng)論