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


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


Pandas DataFrame.truediv(~) 方法將源 DataFrame 中的值除以標量、序列、Series 或 DataFrame,即:

DataFrame / other
注意

除非您使用參數 axislevelfill_value ,否則 truediv(~) 相當於使用 / 運算符執行除法。另外, truediv(~) 相當於 div(~)

參數

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。

例子

基本用法

考慮以下數據幀:

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



   A  B  |     A   B
0  2  4  |  0  1   100
1  3  5  |  1  10  1000

執行真正的除法會產生:

df.truediv(df_other)



   A    B
0  2.0  0.040
1  0.3  0.005

請注意,這相當於:

df/ df_other



   A    B
0  2.0  0.040
1  0.3  0.005

廣播

考慮以下 DataFrame :

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



   A   B
0  20  40
1  30  50
按行劃分

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

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



   A    B
0  2.0  0.4
1  3.0  0.5

在這裏,我們進行以下逐元素浮點除法:

2/1 4/10
3/1 5/10
按列劃分

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

df.truediv([1,10], axis=0)



   A    B
0  2.0  4.0
1  0.3  0.5

在這裏,我們進行以下逐元素浮點除法:

2/1 4/1
3/10 5/10

指定fill_value

考慮以下數據幀:

df = pd.DataFrame({"A":[12,20],"B":[np.NaN,np.NaN]})
df_other = pd.DataFrame({"A":[3,np.NaN], "B":[np.NaN,4]})



   A    B    |     A   B
0  3.0  NaN  |  0  12  NaN
1  NaN  4.0  |  1  20  NaN

默認情況下,當我們使用 truediv(~) 計算除法時,任何使用 NaN 的操作都會產生 NaN

df.truediv(df_other)



   A    B
0  4.0  NaN
1  NaN  NaN

在執行除法之前,我們可以使用fill_value參數填充NaN值:

df.truediv(df_other, fill_value=2)



   A     B
0  4.0   NaN
1  10.0  0.5

在這裏,請注意兩個 NaN 之間的除法仍然會導致 NaN,而不管 fill_value 如何。

相關用法


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