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


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

Pandas DataFrame.expanding(~) 方法用於計算累積統計數據。

參數

1.min_periods | int | optional

計算統計數據的窗口中值的最小數量。如果窗口中的觀測值數量小於 min_periods ,則為該窗口返回 NaN 。默認情況下,min_periods=1

注意

A 窗戶本質上是計算統計數據的數字(觀察值)序列。

2. center | boolean | optional

  • 如果 True ,則觀察值設置為窗口的中心。

  • 如果 False ,則觀察值設置在窗口的右側。

默認情況下,center=False 。請參閱下麵的示例以進行說明。

3. axis | intstring | optional

是否按行或列進行擴展:

說明

"index"0

按列展開。

"columns"1

按行展開。

返回值

隨後將用於計算一些累積統計信息的 Window 對象。

例子

計算累積和

考慮以下 DataFrame :

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



   A  B
0  2  4
1  4  5
2  8  6
按列

要按列計算累積和:

df.expanding().sum()



   A     B
0  2.0   4.0
1  6.0   9.0
2  14.0  15.0
逐行

要按行計算累積和:

df.expanding(axis=1).sum()



   A    B
0  2.0  6.0
1  4.0  9.0
2  8.0  14.0
警告

這個例子隻是為了演示如何使用該方法。 Pandas 有一個方法 DataFrame.cumsum(~) 可以直接計算累積和。

指定min_periods

考慮與上麵相同的DataFrame:

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



   A  B
0  2  4
1  4  5
2  8  6

使用 min_periods=2 調用 expanding(~)

df.expanding(2).sum()



   A     B
0  NaN   NaN
1  6.0   9.0
2  14.0  15.0

在這裏,我們得到第一行的NaN,因為第一個累積和是僅使用 1 個值計算的,該值低於指定的最小值 2。

指定中心參數

考慮以下 DataFrame :

df = pd.DataFrame({"A": [2,4,8,16,25]})
df



   A
0  2
1  4
2  8
3  16
4  25

調用 expanding(~),並將 center 參數設置為 True

df.expanding(center=True).sum()



   A
0  14.0
1  30.0
2  55.0
3  53.0
4  49.0

初始選擇值的大小確定如下:

ceil(num_of_rows/2) = 3

以下是數字計算方式的詳細說明:

A[0]: sum(2, 4, 8) = 14
A[1]: sum(2, 4, 8, 16) = 30
A[2]: sum(2, 4, 8, 16, 25) = 55
A[3]: sum(4, 8, 16, 25) = 53
A[4]: sum(8, 16, 25) = 49

相關用法


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