2013-11-27 15 views
6

Có cách nào để tùy chỉnh cửa sổ của chức năng rolling_mean không?Cán ý nghĩa với cửa sổ tùy chỉnh với Pandas

data 
1 
2 
3 
4 
5 
6 
7 
8 

Giả sử cửa sổ được đặt thành 2, nghĩa là tính trung bình 2 điểm dữ liệu trước và sau khi bảo vệ bao gồm cả quan sát. Nói quan sát thứ 3. Trong trường hợp này, chúng tôi sẽ có (1+2+3+4+5)/5 = 3. Vv và vv.

Trả lời

17

Tính toán giá trị trung bình lăn bằng cửa sổ tiến lên (hoặc lùi) và sau đó sử dụng phương pháp shift để căn giữa lại tùy ý.

data_mean = pd.rolling_mean(data, window=5).shift(-2) 

Nếu bạn muốn trung bình hơn 2 datapoints trước và sau khi quan sát (với tổng số 5 datapoints) sau đó làm cho window=5.

Ví dụ,

import pandas as pd 

data = pd.Series(range(1, 9)) 

data_mean = pd.rolling_mean(data, window=5).shift(-2) 
print(data_mean) 

mang

0 NaN 
1 NaN 
2  3 
3  4 
4  5 
5  6 
6 NaN 
7 NaN 
dtype: float64 

Như kadee points out, nếu bạn muốn tập trung các cán có nghĩa là, sau đó sử dụng

pd.rolling_mean(data, window=5, center=True) 
+0

Cảm ơn cho câu trả lời. Tôi có thể không minh họa ví dụ của tôi tốt. Hãy để tôi cập nhật ví dụ của tôi. – zsljulius

+2

Để căn giữa lại, người ta cũng có thể làm: data_mean = pd.rolling_mean (dữ liệu, window = 5, center = True) – kadee

+0

@kadee: Cảm ơn sự cải thiện. – unutbu

Các vấn đề liên quan