DataFrame 視窗函式rolling

2021-10-03 16:48:55 字數 1705 閱讀 6901

在資料開發最經常會用到將最近幾個值相加、求平均等操作,類似sql的group by,在dataframe中使用rolling操作簡單、計算效率高

官方文件鏈結

dataframe.rolling(window, min_periods=

none

, center=

false

, win_type=

none

, on=

none

, axis=

0, closed=

none

)

引數說明:

示例**:

# -*- coding:utf-8 -*-

import pandas as pd

import numpy as np

# 建立df

df = pd.dataframe(np.random.randint(

5, size=(10

,2))

, index=pd.date_range(

'1/1/2020'

, periods=10)

, columns=

['a'

,'b'])

# 將b列最近2個值相加並生成新列

df['c'

]= df[

'b']

.rolling(window=2)

.sum()

# 將b列最近5個值相加並生成新列

df['d'

]= df[

'b']

.rolling(window=5)

.sum()

# 將b列最近2個值求平均並生成新列

df['e'

]= df[

'b']

.rolling(window=2)

.mean(

)# 將b列最近5個值求平均並生成新列

df['f'

]= df[

'b']

.rolling(window=5)

.mean(

)print

(df)

輸出結果:

a  b    c    d    e    f

2020-01

-0140 nan nan nan nan

2020-01

-0241

1.0 nan 0.5 nan

2020-01

-0314

5.0 nan 2.5 nan

2020-01

-0422

6.0 nan 3.0 nan

2020-01

-0501

3.08.0

1.51.6

2020-01

-0621

2.09.0

1.01.8

2020-01

-0741

2.09.0

1.01.8

2020-01

-0830

1.05.0

0.51.0

2020-01

-0934

4.07.0

2.01.4

2020-01

-1033

7.09.0

3.51.8

常用聚合函式:

hive視窗函式 Hive sql視窗函式原始碼分析

在了解了視窗函式實現原理 spark hive中視窗函式實現原理覆盤 和 sparksql比hivesql優化的點 視窗函式 之後,今天又擼了一遍hive sql 中視窗函式的原始碼實現,寫個筆記記錄一下。簡單來說,視窗查詢有兩個步驟 將記錄分割成多個分割槽 然後在各個分割槽上呼叫視窗函式。傳統的 ...

DataFrame 6 自定義函式

如果想要應用自定義的函式,或者把其他庫中的函式應用到 pandas 物件中,有以下三種方法 如何從上述函式中選擇適合的函式,這取決於函式的操作物件。下面介紹了三種方法的使用。通過給 pipe 函式傳遞乙個自定義函式和適當數量的引數值,從而操作 datafrme 中的所有元素。下面示例,實現了資料表中...

視窗過程函式

lresult callback wndproc hwnd hwnd,uint message,wparam wparam,lparam lparam 這個視窗過程函式命名為wndproc,視窗過程可任意命名 只要不和其他名字發生衝突 另外乙個windows程式可以包含多個視窗過程。乙個視窗過程總是...