English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دوال الفنائن في Pandas

مثال على عمليات Pandas للنافذة

لمعالجة البيانات الرقمية، يقدم Pandas بعض المشتقات مثل التحرك، التوسع، والتحرك بناءً على الوزن المتدرج لتحقيق الإحصاءات النافذة. وتشمل هذه المجموعة إجمالي، متوسط، متوسط، التباين، الكوفيرانس، الترابط، إلخ.
الآن، سنتعلم كيفية تطبيقها على DataFrame المختلفة.

.rolling()函数

هذه الوظيفة يمكن تطبيقها على سلسلة من البيانات. تحديد المعلمة window = 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())

النتائج التشغيلية كالتالي:

                  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

بسبب حجم النافذة هو 3، لذا تكون القيم الأولى للاثنين فارغة، تبدأ من العنصر الثالث، القيمة هي متوسط العناصر n، n-1 و n-2. لذا يمكننا تطبيق الوظائف المختلفة المذكورة أعلاه أيضًا.

.expanding() 函数

هذه الوظيفة يمكن تطبيقها على سلسلة من البيانات. تحديد المعلمة min_periods = 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())

النتائج التشغيلية كالتالي:

                 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()

ewm يُطبق على سلسلة من البيانات. يتم تحديد أي من معلمات com، span، halflife، وتطبيق الدالة الإحصائية المناسبة عليها. يتم توزيع الأوزان بشكل أسي.

 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())

النتائج التشغيلية كالتالي:

                  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

يستخدم الفنائن النافذة بشكل رئيسي لاستكشاف الاتجاهات في البيانات من خلال رسم منحنيات ملساء بطريقة رسومية. إذا كان هناك تغيير كبير في البيانات اليومية ولدي العديد من نقاط البيانات المتاحة، فإن استخدام العينة والرسم هو طريقة واحدة، وتطبيق حساب النافذة ورسم النتائج هو طريقة أخرى. من خلال هذه الطرق، يمكننا تعديل المنحنيات أو الاتجاهات.