Bài 20: Hàm Window – Python Panda

Trang chủ » Training » Bài 20: Hàm Window – Python Panda
22/02/2022 Training 110 viewed
Để làm việc trên dữ liệu số, Pandas cung cấp một số biến thể như trolling, expanding và exponentially theo cấp số nhân cho thống kê window. Trong số này có tổng, trung bình, trung vị, phương sai, hiệp phương sai, tương quan, v.v.
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.

1. Hàm .rolling()

Hàm này có thể được áp dụng trên một loạt dữ liệu. Chỉ định đối số window = n và áp dụng hàm thống kê thích hợp trên 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()
Kết quả :
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
Lưu ý – Vì kích thước window là 3, đối với hai phần tử đầu tiên có giá trị rỗng và từ phần ba giá trị sẽ là giá trị trung bình của n, n-1 và n-2 phần tử. Vì vậy, ta cũng có thể áp dụng các hàm khác nhau như đã đề cập ở trên.

2. Hàm .expanding()

Hàm này có thể được áp dụng trên một loạt dữ liệu. Chỉ định đối số min_periods = n và áp dụng hàm thống kê thích hợp trên 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()
Kết quả :
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

3. Hàm .ewm()

ewm được áp dụng trên một loạt dữ liệu. Chỉ định bất kỳ đối số com, span, halflife nào và áp dụng hàm thống kê thích hợp lên trên 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()
Kết quả :
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 hàm Window đượ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 hàm và áp dụng tính toán window và vẽ biểu đồ trên kết quả là một hàm khác. Bằng những phương pháp này, ta có thể làm mịn đường cong hoặc xu hướng.
Chia sẻ:
Tags:
TOP HOME