Python Pandas - Chức năng cửa sổ
Để làm việc trên dữ liệu số, Pandas cung cấp một số biến thể như trọng số cuộn, mở rộng và di chuyển theo cấp số nhân cho thống kê cửa sổ. Trong số này cósum, mean, median, variance, covariance, correlation, Vân vân.
Bây giờ chúng ta sẽ tìm hiểu cách áp dụng từng thứ này trên các đối tượng DataFrame.
.rolling () Hàm
Chức năng này có thể được áp dụng trên một loạt dữ liệu. Chỉ định lawindow=n lập luận và áp dụng hàm thống kê thích hợp trên đó.
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 4),
index = pd.date_range('1/1/2000', periods=10),
columns = ['A', 'B', 'C', 'D'])
print df.rolling(window=3).mean()
Nó là output như sau -
A B C D
2000-01-01 NaN NaN NaN NaN
2000-01-02 NaN NaN NaN NaN
2000-01-03 0.434553 -0.667940 -1.051718 -0.826452
2000-01-04 0.628267 -0.047040 -0.287467 -0.161110
2000-01-05 0.398233 0.003517 0.099126 -0.405565
2000-01-06 0.641798 0.656184 -0.322728 0.428015
2000-01-07 0.188403 0.010913 -0.708645 0.160932
2000-01-08 0.188043 -0.253039 -0.818125 -0.108485
2000-01-09 0.682819 -0.606846 -0.178411 -0.404127
2000-01-10 0.688583 0.127786 0.513832 -1.067156
Note - Vì kích thước cửa sổ là 3, đối với hai phần tử đầu tiên có giá trị rỗng và từ thứ ba giá trị sẽ là giá trị trung bình của n, n-1 và n-2các yếu tố. Vì vậy, chúng ta cũng có thể áp dụng các chức năng khác nhau như đã đề cập ở trên.
.expanding () Hàm
Chức năng này có thể được áp dụng trên một loạt dữ liệu. Chỉ định lamin_periods=n lập luận và áp dụng hàm thống kê thích hợp trên đó.
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 4),
index = pd.date_range('1/1/2000', periods=10),
columns = ['A', 'B', 'C', 'D'])
print df.expanding(min_periods=3).mean()
Nó là output như sau -
A B C D
2000-01-01 NaN NaN NaN NaN
2000-01-02 NaN NaN NaN NaN
2000-01-03 0.434553 -0.667940 -1.051718 -0.826452
2000-01-04 0.743328 -0.198015 -0.852462 -0.262547
2000-01-05 0.614776 -0.205649 -0.583641 -0.303254
2000-01-06 0.538175 -0.005878 -0.687223 -0.199219
2000-01-07 0.505503 -0.108475 -0.790826 -0.081056
2000-01-08 0.454751 -0.223420 -0.671572 -0.230215
2000-01-09 0.586390 -0.206201 -0.517619 -0.267521
2000-01-10 0.560427 -0.037597 -0.399429 -0.376886
.ewm () Hàm
ewmđược áp dụng trên một loạt dữ liệu. Chỉ định bất kỳ com, span,halflifelập luận và áp dụng hàm thống kê thích hợp trên đó. Nó chỉ định các trọng số theo cấp số nhân.
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 4),
index = pd.date_range('1/1/2000', periods=10),
columns = ['A', 'B', 'C', 'D'])
print df.ewm(com=0.5).mean()
Nó là output như sau -
A B C D
2000-01-01 1.088512 -0.650942 -2.547450 -0.566858
2000-01-02 0.865131 -0.453626 -1.137961 0.058747
2000-01-03 -0.132245 -0.807671 -0.308308 -1.491002
2000-01-04 1.084036 0.555444 -0.272119 0.480111
2000-01-05 0.425682 0.025511 0.239162 -0.153290
2000-01-06 0.245094 0.671373 -0.725025 0.163310
2000-01-07 0.288030 -0.259337 -1.183515 0.473191
2000-01-08 0.162317 -0.771884 -0.285564 -0.692001
2000-01-09 1.147156 -0.302900 0.380851 -0.607976
2000-01-10 0.600216 0.885614 0.569808 -1.110113
Các chức năng của cửa sổ được sử dụng chủ yếu để tìm các xu hướng bên trong dữ liệu bằng đồ thị bằng cách làm mịn đường cong. Nếu dữ liệu hàng ngày có nhiều biến động và có sẵn nhiều điểm dữ liệu, thì lấy mẫu và vẽ biểu đồ là một phương pháp và áp dụng tính toán cửa sổ và vẽ biểu đồ trên kết quả là một phương pháp khác. Bằng những phương pháp này, chúng ta có thể làm mịn đường cong hoặc xu hướng.