Python Pandas - описательная статистика
Большое количество методов совместно вычисляют описательную статистику и другие связанные операции с DataFrame. Большинство из них представляют собой агрегаты типаsum(), mean(), но некоторые из них, как sumsum(), создайте объект того же размера. Вообще говоря, эти методы требуютaxisаргумент, как и ndarray. {sum, std, ...}, но ось может быть указана по имени или целому числу
DataFrame - «индекс» (ось = 0, по умолчанию), «столбцы» (ось = 1)
Давайте создадим DataFrame и будем использовать этот объект в этой главе для всех операций.
пример
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
это output выглядит следующим образом -
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).
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()
это output выглядит следующим образом -
Age 382
Name TomJamesRickyVinSteveSmithJackLeeDavidGasperBe...
Rating 44.92
dtype: object
Каждый отдельный столбец добавляется отдельно (добавляются строки).
ось = 1
Этот синтаксис даст результат, как показано ниже.
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)
это output выглядит следующим образом -
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
значить()
Возвращает среднее значение.
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()
это output выглядит следующим образом -
Age 31.833333
Rating 3.743333
dtype: float64
std ()
Возвращает стандартное отклонение Бресселя числовых столбцов.
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()
это output выглядит следующим образом -
Age 9.232682
Rating 0.661628
dtype: float64
Функции и описание
Давайте теперь разберемся с функциями описательной статистики в Python Pandas. В следующей таблице перечислены важные функции -
Sr. No. | Функция | Описание |
---|---|---|
1 | счет () | Количество ненулевых наблюдений |
2 | сумма () | Сумма значений |
3 | значить() | Среднее значение |
4 | медиана () | Медиана значений |
5 | Режим() | Режим ценностей |
6 | std () | Стандартное отклонение значений |
7 | мин () | Минимальное значение |
8 | Максимум() | Максимальное значение |
9 | абс () | Абсолютная величина |
10 | prod () | Продукт ценностей |
11 | кончает () | Накопительная сумма |
12 | cumprod () | Совокупный продукт |
Note- Поскольку DataFrame - это гетерогенная структура данных. Общие операции работают не со всеми функциями.
Функции вроде sum(), cumsum()работать как с числовыми, так и с символьными (или) строковыми элементами данных без ошибок. Хотяn На практике агрегаты символов обычно никогда не используются, эти функции не вызывают никаких исключений.
Функции вроде abs(), cumprod() генерировать исключение, когда DataFrame содержит символьные или строковые данные, потому что такие операции не могут быть выполнены.
Обобщение данных
В describe() Функция вычисляет сводку статистики, относящуюся к столбцам DataFrame.
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()
это output выглядит следующим образом -
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
Эта функция дает mean, std и IQRзначения. И функция исключает символьные столбцы и дает сводку о числовых столбцах.'include'- это аргумент, который используется для передачи необходимой информации о том, какие столбцы необходимо учитывать при подведении итогов. Принимает список значений; по умолчанию «число».
- object - Суммирует строковые столбцы
- number - Суммирует числовые столбцы
- all - Суммирует все столбцы вместе (не должно передаваться как значение списка)
Теперь используйте в программе следующий оператор и проверьте вывод -
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'])
это output выглядит следующим образом -
Name
count 12
unique 12
top Ricky
freq 1
Теперь используйте следующий оператор и проверьте вывод -
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')
это output выглядит следующим образом -
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