English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
مثال على استخدام وظائف الإحصاء في Pandas
تساعد الأساليب الإحصائية في فهم وتحليل سلوك البيانات. الآن، سنتعلم بعض الوظائف الإحصائية التي يمكن تطبيقها على كائنات Pandas.
تمتلك Series، DatFrames و Panels وظيفة pct_change(). ستقوم هذه الوظيفة بمقارنة كل عنصر مع العنصر السابق و حساب نسبة التغيير.
import pandas as pd import numpy as np s = pd.Series([1,2,3,4,5,4]) print(s.pct_change() df = pd.DataFrame(np.random.randn(5, 2)) print(df.pct_change())
نتائج التنفيذ:
0 NaN 1 1.000000 2 0.500000 3 0.333333 4 0.250000 5 -0.200000 dtype: float64 0 1 0 NaN NaN 1 -15.151902 0.174730 2 -0.746374 -1.449088 3 -3.582229 -3.165836 4 15.601150 -1.860434
بالتجريد، يُطبق pct_change() على الأعمدة؛ إذا كنت ترغب في تطبيق نفس الخطوة على نفس الصف، استخدم معامل axis = 1().
تطبيق协يفيرسية على بيانات التسلسل. يمتلك الكائنات التسلسلية طريقة cov لحساب协يفيرسية بين كائنات التسلسل. سيتم استبعاد NA تلقائيًا.
import pandas as pd import numpy as np s1 = pd.Series(np.random.randn(10)) s2 = pd.Series(np.random.randn(10)) print(s1.cov(s2))
نتائج التنفيذ:
-0.12978405324
عند تطبيق طريقة协يفيرسية على DataFrame، سيتم حساب cov بين جميع الأعمدة.
import pandas as pd import numpy as np frame = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e']) print(frame['a'].cov(frame['b'])) print(frame.cov())
نتائج التنفيذ:
-0.58312921152741437 a b c d e a 1.780628 -0.583129 -0.185575 0.003679 -0.136558 b -0.583129 1.297011 0.136530 -0.523719 0.251064 c -0.185575 0.136530 0.915227 -0.053881 -0.058926 d 0.003679 -0.523719 -0.053881 1.521426 -0.487694 e -0.136558 0.251064 -0.058926 -0.487694 0.960761
مراقبة قيمة cov بين عمود a و b في الجملة الأولى، وهي نفس القيمة التي تعود منها cov على DataFrame.
الارتباط يظهر العلاقة الخطية بين أي مجموعتين من القيم (سلسلتين). هناك عدة طرق لحساب الارتباط، مثل pearson (الافتراضي)، spearman وkendall.
import pandas as pd import numpy as np frame = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e']) print(frame['a'].corr(frame['b'])) print(frame.corr())
نتائج التنفيذ:
-0.383712785514 a b c d e a 1.000000 -0.383713 -0.145368 0.002235 -0.104405 b -0.383713 1.000000 0.125311 -0.372821 0.224908 c -0.145368 0.125311 1.000000 -0.045661 -0.062840 d 0.002235 -0.372821 -0.045661 1.000000 -0.403380 e -0.104405 0.224908 -0.062840 -0.403380 1.000000
إذا كانت هناك أي أعمدة غير رقمية في DataFrame، سيتم استبعادها تلقائيًا.
ترتيب البيانات يقوم بترتيب كل عنصر في مجموعة العناصر. إذا كان هناك تساوي، يتم توزيع الرتبة المتوسطة.
import pandas as pd import numpy as np s = pd.Series(np.random.np.random.randn(5), index=list('abcde')) s['d'] = s['b'] # هناك رابطة print(s.rank())
نتائج التنفيذ:
a 1.0 b 3.5 c 2.0 d 3.5 e 5.0 dtype: float64
Rank يمكن أن يختار ترتيب المعاملات ترتيباً تصاعدياً، بمعنى افتراضي، هو true؛ إذا كان خطأ، يتم ترتيب البيانات عكسياً ويعطى القيم الأكبر رتبة أقل.
Rank يدعم استخدام معامل method:
average − متوسط الرتبة في المجموعات المتوازية. min − أقل رتبة في المجموعة. max − أعلى رتبة في المجموعة. first − ترتيب الأعمدة والسطور في الترتيب الذي يظهر فيها في المصفوفة.