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

الإحصاءات الوصفية لـ Pandas

Pandas 描述性统计操作实例

DataFrame用在大量的计算描述性信息统计和其他相关操作。其中大多数是聚合,例如sum(),mean(),但其中一些聚合(例如sumsum())会产生相同大小的对象。一般而言,这些方法采用轴参数,就像ndarray。{sum,std,...}一样,但是可以通过名称或整数指定轴 DataFrame − 索引 (axis=0, default), 列 (axis=1)

我们来创建一个DataFrame并在本章中使用此对象进行所有操作。

实例

 import pandas as pd
 import numpy as np
 # Create a series dictionary
 d = {'Name': pd.Series(['Tom', 'James', 'Ricky', 'Vin', 'Steve', 'Smith', 'Jack',
    'Lee', 'David', 'Gasper', 'Betina', 'Andres']),
    'Age': pd.Series([25, 26, 25, 23, 30, 29, 23, 34, 40, 30, 51, 46]),
    'Rating': pd.Series([4.23, 3.24, 3.98, 2.56, 3.20, 4.6, 3.8, 3.78, 2.98, 4.80, 4.10, 3.65])
 }
 # 创建一个DataFrame
 df = pd.DataFrame(d)
 print(df)

نتائج التنفيذ:

        Age  Name   Rating
0   25   Tom     4.23
1   26   James   3.24
2   25   Ricky   3.98
3   23   Vin     2.56
4   30   Steve   3.20
5   29   Smith   4.60
6   23   Jack    3.80
7   34   Lee     3.78
8   40   David   2.98
9   30   Gasper  4.80
10  51   Betina  4.10
11  46   Andres  3.65

sum

返回所请求轴的值之和。默认情况下,轴为索引(轴=0)

 import pandas as pd
 import numpy as np
  
 #创建一个Series字典
 d = {'Name': pd.Series(['Tom', 'James', 'Ricky', 'Vin', 'Steve', 'Smith', 'Jack',
    'Lee', 'David', 'Gasper', 'Betina', 'Andres']),
    'Age': pd.Series([25, 26, 25, 23, 30, 29, 23, 34, 40, 30, 51, 46]),
    'Rating': pd.Series([4.23, 3.24, 3.98, 2.56, 3.20, 4.6, 3.8, 3.78, 2.98, 4.80, 4.10, 3.65])
 }
 # Create a DataFrame
 df = pd.DataFrame(d)
 print(df.sum())

نتائج التنفيذ:

    Age                                                    382
الاسم TomJamesRickyVinSteveSmithJackLeeDavidGasperBe...
التقييم 44.92
dtype: object

يتم إضافة نص إلى كل عمود بمفرده

axis=1

هذه الجملة ستنتج ما يلي.

 import pandas as pd
 import numpy as np
  
 # Create a series dictionary
 d = {'Name': pd.Series(['Tom', 'James', 'Ricky', 'Vin', 'Steve', 'Smith', 'Jack',
    'Lee', 'David', 'Gasper', 'Betina', 'Andres']),
    'Age': pd.Series([25, 26, 25, 23, 30, 29, 23, 34, 40, 30, 51, 46]),
    'Rating': pd.Series([4.23, 3.24, 3.98, 2.56, 3.20, 4.6, 3.8, 3.78, 2.98, 4.80, 4.10, 3.65])
 }
  
 # Create a DataFrame
 df = pd.DataFrame(d)
 print(df.sum(1))

نتائج التنفيذ:

    0 29.23
1 29.24
2 28.98
3 25.56
4 33.20
5 33.60
6 26.80
7 37.78
8 42.98
9 34.80
10 55.10
11 49.65
dtype: float64

mean

يعود بالوسطية

 import pandas as pd
 import numpy as np
 # Create a series dictionary
 d = {'Name': pd.Series(['Tom', 'James', 'Ricky', 'Vin', 'Steve', 'Smith', 'Jack',
    'Lee', 'David', 'Gasper', 'Betina', 'Andres']),
    'Age': pd.Series([25, 26, 25, 23, 30, 29, 23, 34, 40, 30, 51, 46]),
    'Rating': pd.Series([4.23, 3.24, 3.98, 2.56, 3.20, 4.6, 3.8, 3.78, 2.98, 4.80, 4.10, 3.65])
 }
 # Create a DataFrame
 df = pd.DataFrame(d)
 print(df.mean())

نتائج التنفيذ:

    العمر 31.833333
التقييم 3.743333
dtype: float64

std

يعود بتباين المعيارية للسلسلة العددية.

 import pandas as pd
 import numpy as np
 # Create a series dictionary
 d = {'Name': pd.Series(['Tom', 'James', 'Ricky', 'Vin', 'Steve', 'Smith', 'Jack',
    'Lee', 'David', 'Gasper', 'Betina', 'Andres']),
    'Age': pd.Series([25, 26, 25, 23, 30, 29, 23, 34, 40, 30, 51, 46]),
    'Rating': pd.Series([4.23, 3.24, 3.98, 2.56, 3.20, 4.6, 3.8, 3.78, 2.98, 4.80, 4.10, 3.65])
 }
 # Create a DataFrame
 df = pd.DataFrame(d)
 print(df.std())

نتائج التنفيذ:

    العمر 9.232682
التقييم 0.661628
dtype: float64

الوظائف & الوصف

الآن دعونا نتعرف على الوظائف في الإحصاءات الوصفية لـ Python Pandas. يوضح الجدول أدناه الوظائف المهمة:

الرقمالطريقةالوصف
1countعدد العناصر غير الفارغة
2sumالعدد الإجمالي
3meanالوسطية
4medianالوسط الحسابي
5modeالنمط
6stdالتباين المعياري
7minأدنى قيمة
8maxأكبر قيمة
9absالقيمة المطلقة
10prodالناتج
11cumsumالتراكمي
12cumprodالتراكمي
ملاحظة: − لأن DataFrame هي بنية بيانات متنوعة. العمليات العامة غير مناسبة لجميع الوظائف.
    يمكن استخدام وظائف مثل sum()،cumsum() للبيانات الرقمية والنصية (أو) النصية دون حدوث أي أخطاء. على الرغم من أن مجموعات النصوص ليست مستخدمة بشكل واسع، إلا أنها لا تسبب أي استثنائية.
  • عندما يحتوي DataFrame على بيانات نصية أو نصية، فإن وظائف مثل abs()،cumprod() تسبب استثنائية، لأن هذا النوع من العمليات غير قابلة للتنفيذ.

Summarize data

  import pandas as pd
 import numpy as np
 # Create a series dictionary
 d = {'Name': pd.Series(['Tom', 'James', 'Ricky', 'Vin', 'Steve', 'Smith', 'Jack',
    'Lee', 'David', 'Gasper', 'Betina', 'Andres']),
    'Age': pd.Series([25, 26, 25, 23, 30, 29, 23, 34, 40, 30, 51, 46]),
    'Rating': pd.Series([4.23, 3.24, 3.98, 2.56, 3.20, 4.6, 3.8, 3.78, 2.98, 4.80, 4.10, 3.65])
 }
 # Create a DataFrame
 df = pd.DataFrame(d)
 print(df.describe())

نتائج التنفيذ:

                Age                           Rating
count                       12.000000                       12.000000
mean                         31.833333                         3.743333
std                         9.232682                         0.661628
min                         23.000000                         2.560000
25%                         25.000000                         3.230000
50%                         29.500000                         3.790000
75%                         35.500000                         4.132500
max                         51.000000                         4.800000

This function provides mean, std, and IQR values. And, the function does not include character columns and the given summary of numeric columns. 'include' is a parameter used to pass necessary information about which columns need to be considered when summarizing. Value list; the default is 'numeric'.

object − Summarize string columnsnumber − Summarize numeric columnsall − Summarize all columns together (should not be taken as a list value)

Below we use the following statements and execute and output:

  import pandas as pd
 import numpy as np
 # Create a series dictionary
 d = {'Name': pd.Series(['Tom', 'James', 'Ricky', 'Vin', 'Steve', 'Smith', 'Jack',
    'Lee', 'David', 'Gasper', 'Betina', 'Andres']),
    'Age': pd.Series([25, 26, 25, 23, 30, 29, 23, 34, 40, 30, 51, 46]),
    'Rating': pd.Series([4.23, 3.24, 3.98, 2.56, 3.20, 4.6, 3.8, 3.78, 2.98, 4.80, 4.10, 3.65])
 }
 # Create a DataFrame
 df = pd.DataFrame(d)
 print(df.describe(include=['object']))

نتائج التنفيذ:

           Name
count                       12
unique                     12
top                         Ricky
freq                         1

Below we use the following statements and execute and output:

  import pandas as pd
 import numpy as np
 # Create a series dictionary
 d = {'Name': pd.Series(['Tom', 'James', 'Ricky', 'Vin', 'Steve', 'Smith', 'Jack',
    'Lee', 'David', 'Gasper', 'Betina', 'Andres']),
    'Age': pd.Series([25, 26, 25, 23, 30, 29, 23, 34, 40, 30, 51, 46]),
    'Rating': pd.Series([4.23, 3.24, 3.98, 2.56, 3.20, 4.6, 3.8, 3.78, 2.98, 4.80, 4.10, 3.65])
 }
 # Create a DataFrame
 df = pd.DataFrame(d)
 print(df. describe(include='all'))

نتائج التنفيذ:

           Age          Name       Rating
count   12.000000        12    12.000000
unique        NaN        12          NaN
top           NaN     Ricky          NaN
freq          NaN         1          NaN
mean    31.833333       NaN     3.743333
std      9.232682       NaN     0.661628
min     23.000000       NaN     2.560000
25%     25.000000       NaN     3.230000
50%     29.500000       NaN     3.790000
75%     35.500000       NaN     4.132500
max     51.000000       NaN     4.800000