當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python Pandas DataFrame add方法用法及代碼示例


Pandas DataFrame.add(~) 方法計算源 DataFrame 和另一個標量、序列 Series 或 DataFrame 中的值的總和,即:

DataFrame + other
注意

除非您使用參數 axislevelfill_value ,否則 add(~) 相當於使用 + 運算符執行加法。

參數

1.other | scalarsequenceSeriesDataFrame

生成的 DataFrame 將是源 DataFrame 和 other 的總和。

2. axis | intstring | optional

是否為源DataFrame的每一列或每一行廣播other

說明

"index"0

每列廣播 other

"columns"1

other 為每行廣播

僅當源 DataFrame 的形狀與 other 的形狀不一致時,這才相關。默認情況下,axis=1

3. level | intstring | optional

要考慮的級別的名稱或整數索引。僅當您的 DataFrame 是多索引時,這才相關。

4. fill_value | floatNone | optional

在計算總和之前替換 NaN 的值。如果總和涉及兩個 NaN ,那麽結果仍然是 NaN 。默認情況下,fill_value=None

返回值

由源 DataFrame 和 other 之和計算出的新 DataFrame

例子

基本用法

考慮以下數據幀:

df = pd.DataFrame({"A":[2,3], "B":[4,5]})
df_other = pd.DataFrame({"A":[6,7], "B":[8,9]})



   A  B  |     A  B
0  2  4  |  0  6  8
1  3  5  |  1  7  9

計算它們的總和:

df.add(df_other)



   A   B
0  8   12
1  10  14

請注意,這相當於:

df + df_other



   A   B
0  8   12
1  10  14

廣播

考慮以下 DataFrame :

df = pd.DataFrame({"A":[2,3], "B":[4,5]})
df



   A  B
0  2  4
1  3  5
逐行加法

默認情況下, axis=1 ,這意味著 other 將為 df 中的每一行廣播:

df.add([10,20])   # axis=1



   A   B
0  12  24
1  13  25

在這裏,我們進行以下逐元素加法:

2+10 4+20
3+10 5+20
逐列加法

要為 df 中的每一列廣播 other,請像這樣設置 axis=0

df.add([10,20], axis=0)



   A   B
0  12  14
1  23  25

在這裏,我們進行以下逐元素加法:

2+10 4+10
3+20 5+20

指定fill_value

考慮以下帶有一些缺失值的DataFrames:

df = pd.DataFrame({"A": [2,np.NaN], "B":[np.NaN,5]})
df_other = pd.DataFrame({"A":[10, 20],"B":[np.NaN,np.NaN]})



   A    B    |     A   B
0  2    NaN  |  0  10  NaN
1  NaN  5    |  1  20  NaN

默認情況下,當我們使用 add(~) 求和時,任何使用 NaN 的操作都會得到 NaN

df.add(df_other)



   A     B
0  12.0  NaN
1  NaN   NaN

在使用 fill_value 計算總和之前,我們可以填充 NaN 值:

df.add(df_other, fill_value=100)



   A      B
0  12.0   NaN
1  120.0  105.0

這裏,請注意,當加法涉及 NaN 時,所得總和仍然是 NaN ,而不管 fill_value

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 Pandas DataFrame | add method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。