在Python中使用Pandas计算统计数据
在Python中执行各种复杂的统计操作可以很容易地被简化为使用pandas的单行命令。我们将在这篇文章中讨论一些最有用和最常见的统计操作。我们将使用泰坦尼克号的生存数据集来演示这些操作。
# Import Pandas Library
import pandas as pd
# Load Titanic Dataset as Dataframe
dataset = pd.read_csv('train.csv')
# Show dataset
# head() bydefault show
# 5 rows of the dataframe
dataset.head()
输出:
1. Mean
通过使用DataFrame/Series.mean()方法计算平均值或平均数。
语法:
DataFrame/Series.mean(self, axis=None, skipna=None, level=None, numeric_only=None, **kwargs)
参数:
- axis: {指数(0),列(1)}。指定要应用的函数的axis。
-
skipna:此参数为bool值,默认值为True。它在计算结果时排除了空值。
-
level:该参数采用int值或级别名称,默认值为无。如果axis是MultiIndex,沿某一级别计数,折叠成一个系列。
-
numeric_only : 此参数为bool值,默认值为无。只包括float, int, boolean列。如果没有,将尝试使用所有数据,然后只使用数字数据值。对系列来说没有实现。
-
kwargs。传递给函数的额外参数。
返回:系列或数据框架的平均值(如果指定水平)。
代码:
# Calculate the Mean
# of 'Age' column
mean = dataset['Age'].mean()
# Print mean
print(mean)
输出:
29.69911764705882
2. Median:
通过使用DataFrame/Series.median()方法计算中值。
语法:
DataFrame/Series.median(self, axis=None, skipna=None, level=None, numeric_only=None, **kwargs)
参数:
axis: {index (0), columns (1)} 指定函数要应用的轴。
skipna: 这个参数采用bool值,默认值为True,在计算结果时排除空值。
level: 该参数采用int或级别名称,默认为None 如果轴是MultiIndex,则沿某一级别计数,折叠成一个系列。
numeric_only:该参数采用bool值,默认值为None 只包括浮动、int、boolean列。如果值为None,将尝试使用所有数据,然后只使用数字数据。
**kwargs:要传递给函数的附加参数。
返回值: 系列或数据框架的中位数(如果指定水平)。
代码:
# Calculate Median of 'Fare' column
median = dataset['Fare'].median()
# Print median
print(median)
输出:
14.4542
3. Mode
通过使用DataFrame.mode()方法计算模式或最频繁的值。
语法:
DataFrame/Series.mode(self, axis=0, numeric_only=False, dropna=True)
参数:
- axis : {index (0), columns (1)}
在搜索模式值时要迭代的轴。
0值或’索引’:获取每一列的模式
1值或’列’:获取每一行的模式。
- numeric_only: 该参数采用bool值,默认值为False。如果是True,只适用于数值列。
dropna: 该参数采用bool值,默认值为True。不考虑NaN/None值的计数。
返回值 : 最高的频率值。
代码 :
# Calculate Mode of 'Sex' column
mode = dataset['Sex'].mode()
# Print mode
print(mode)
输出:
0 male
dtype: object
4. Count:
通过使用DataFrame/Series.count()方法,计算非空值的数量或频率。
语法:
DataFrame/Series.count(self, axis=0, level=None, numeric_only=False)
参数:
- axis: {0或’索引’,1或’列’},默认值为0 ,如果值为0或’索引’,则为每列生成计数。如果值为1或 “列”,则为每一行生成计数。
level: (optional)这个参数采用int或str值。如果轴是一个多索引类型,则沿着一个特定的级别计数,折叠成一个DataFrame。str是用来指定级别名称的。
numeric_only: 这个参数使用bool值,默认为False。只包括浮点数、英数或布尔值数据。
返回值 : 对于每一列/行的非空条目的数量。如果指定了级别,则返回一个DataFrame结构。
代码:
# Calculate Count of 'Ticket' column
count = dataset['Ticket'].count()
# Print count
print(count)
输出:
891
5.标准偏差
通过使用DataFrame/Series.std()方法计算数值的标准偏差。
语法 :
DataFrame/Series.std(self, axis=None, skipna=None, level=None, ddof=1, numeric_only=None, **kwargs)
参数:
- axis : {index (0), columns (1)}
- skipna: 该参数采用bool值,默认值为True。 排除NA/null值。如果整个行/列有NA值,结果将是NA值。
level: 该参数使用int或级别名称,默认值为无。如果轴是MultiIndex,则沿某一级别计数,折叠成一个系列。
ddof : 此参数为int值,默认值为1。 Delta自由度。计算中使用的除数是N-ddof,其中N值代表元素的数量。
numeric_only : 此参数为bool值,默认为无。只包括float, int, boolean列。如果没有,将尝试使用所有数据,然后只使用数字数据。对系列来说没有实现。
返回值 : Standard Deviation
代码:
# Calculate Standard Deviation
# of 'Fare' column
std = dataset['Fare'].std()
# Print standard deviation
print(std)
输出 :
49.693428597180905
6. Max
使用DataFrame/Series.max()方法计算出最大值。
语法:
DataFrame/Series.max(self, axis=None, skipna=None, level=None, numeric_only=None, **kwargs)
参数:
- axis: {index (0), columns (1)} 指定要应用的函数的轴。
skipna: bool, default True .它在计算结果时排除了空值。
level: 如果轴是MultiIndex类型,则沿某一特定级别计数,折叠成一个系列。
numeric_only: bool, default None .只包括float, int, boolean列。如果无值,将尝试使用所有数据,然后只使用数字数据。
**kwargs: 传递给函数的附加关键字。
返回值 : 系列或数据框架中的最大值(如果指定了水平)。
代码 :
# Calculate Maximum value in 'Age' column
maxValue = dataset['Age'].max()
# Print maxValue
print(maxValue)
输出 :
80.0
7. Min
使用DataFrame/Series.min()方法计算出最小值。
语法: DataFrame/Series.min(self, axis=None, skipna=None, level=None, numeric_only=None, **kwargs)
Parameters:
- axis: {index (0), columns (1)} .指定要应用的函数的轴。
skipna: bool, default True .它在计算结果时排除了空值。
level: int or level name, default None .如果轴是MultiIndex类型,则沿某一级别计数,折叠成一个系列。
numeric_only: bool, default None .只包括float, int, boolean列。如果无值,将尝试使用所有数据,然后只使用数字数据。
**kwargs: 传递给函数的附加关键字。
返回值: 系列或数据框架中的最小值(如果指定水平)。
代码 :
# Calculate Minimum value in 'Fare' column
minValue = dataset['Fare'].min()
# Print minValue
print(minValue)
输出:
0.0000
8. Describe
使用DataFrame/Series.describe()方法总结一般描述性统计。
语法:
DataFrame/Series.describe(self: ~ FrameOrSeries, percentiles=None, include=None, exclude=None)
参数:
- percentiles: 类似于数字的列表,可选
- i nclude : ‘all’, 类似于dtypes或None值的列表(默认),可选
- exclude : 类似于dtypes或None值的列表(默认),可选。
返回值: Summary statistics of the Series or Dataframe provided.
# Statistical summary
dataset.describe()
输出: