Учебники

Python Pandas — описательная статистика

Большое количество методов совместно вычисляет описательную статистику и другие связанные операции над DataFrame. Большинство из них являются агрегатами, такими как sum (), mean (), но некоторые из них, например sumsum () , создают объект одинакового размера. Вообще говоря, эти методы принимают аргумент оси , как и ndarray. {Sum, std, …}, но ось может быть указана по имени или целому числу

  • DataFrame — «индекс» (ось = 0, по умолчанию), «столбцы» (ось = 1)

DataFrame — «индекс» (ось = 0, по умолчанию), «столбцы» (ось = 1)

Давайте создадим DataFrame и будем использовать этот объект в этой главе для всех операций.

пример

Live Demo

import pandas as pd
import numpy as np

#Create a Dictionary of 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

Его вывод выглядит следующим образом —

    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

сумма ()

Возвращает сумму значений для запрошенной оси. По умолчанию ось является индексом (ось = 0).

Live Demo

import pandas as pd
import numpy as np
 
#Create a Dictionary of 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
Name     TomJamesRickyVinSteveSmithJackLeeDavidGasperBe...
Rating                                               44.92
dtype: object

Каждый отдельный столбец добавляется индивидуально (строки добавляются).

Ось = 1

Этот синтаксис выдаст вывод, как показано ниже.

Live Demo

import pandas as pd
import numpy as np
 
#Create a Dictionary of 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(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

имею в виду()

Возвращает среднее значение

Live Demo

import pandas as pd
import numpy as np

#Create a Dictionary of 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.mean()

Его вывод выглядит следующим образом —

Age       31.833333
Rating     3.743333
dtype: float64

станд ()

Возвращает стандартное отклонение Бресселя для числовых столбцов.

Live Demo

import pandas as pd
import numpy as np

#Create a Dictionary of 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.std()

Его вывод выглядит следующим образом —

Age       9.232682
Rating    0.661628
dtype: float64

Функции и описание

Давайте теперь разберемся с функциями описательной статистики в Python Pandas. В следующей таблице перечислены важные функции —

Sr.No. функция Описание
1 кол-() Количество ненулевых наблюдений
2 сумма () Сумма значений
3 имею в виду() Среднее значение
4 медиана () Медиана ценностей
5 Режим() Режим ценностей
6 станд () Стандартное отклонение значений
7 мин () Минимальное значение
8 Максимум() Максимальное значение
9 абс () Абсолютная величина
10 прод () Продукт ценностей
11 cumsum () Накопительная сумма
12 cumprod () Накопительный продукт

Примечание. Поскольку DataFrame является гетерогенной структурой данных. Общие операции не работают со всеми функциями.

  • Такие функции, как sum (), cumsum (), работают как с числовыми, так и с символьными (или) строковыми элементами данных без каких-либо ошибок. Хотя на практике агрегации символов обычно не используются, эти функции не выдают никаких исключений.

  • Такие функции, как abs (), cumprod () выдают исключение, когда DataFrame содержит символьные или строковые данные, поскольку такие операции не могут быть выполнены.

Такие функции, как sum (), cumsum (), работают как с числовыми, так и с символьными (или) строковыми элементами данных без каких-либо ошибок. Хотя на практике агрегации символов обычно не используются, эти функции не выдают никаких исключений.

Такие функции, как abs (), cumprod () выдают исключение, когда DataFrame содержит символьные или строковые данные, поскольку такие операции не могут быть выполнены.

Обобщающие данные

Функция description () вычисляет сводную статистику, относящуюся к столбцам DataFrame.

Live Demo

import pandas as pd
import numpy as np

#Create a Dictionary of 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.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

Эта функция дает среднее, стандартное и IQR значения. И, функция исключает символьные столбцы и данные о числовых столбцах. «include» — это аргумент, который используется для передачи необходимой информации о том, какие столбцы необходимо учитывать для обобщения. Принимает список значений; по умолчанию «число».

  • объект — суммирует строковые столбцы
  • число — суммирует числовые столбцы
  • all — суммирует все столбцы вместе (не следует передавать его как значение списка)

Теперь используйте следующую инструкцию в программе и проверьте вывод:

Live Demo

import pandas as pd
import numpy as np

#Create a Dictionary of 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.describe(include=['object'])

Его вывод выглядит следующим образом —

          Name
count       12
unique      12
top      Ricky
freq         1

Теперь используйте следующую инструкцию и проверьте вывод —

Live Demo

import pandas as pd
import numpy as np

#Create a Dictionary of 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. describe(include='all')

Его вывод выглядит следующим образом —