- Pandas环境安装配置
- Pandas数据结构
- Pandas快速入门
- Pandas系列
- Pandas数据帧(DataFrame)
- Pandas面板(Panel)
- Pandas基本功能
- Pandas描述性统计
- Pandas函数应用
- Pandas重建索引
- Pandas迭代
- Pandas排序
- Pandas字符串和文本数据
- Pandas选项和自定义
- Pandas索引和选择数据
- Pandas统计函数
- Pandas窗口函数
- Pandas聚合
- Pandas缺失数据
- Pandas分组(GroupBy)
- Pandas合并/连接
- Pandas级联
- Pandas日期功能
- Pandas时间差(Timedelta)
- Pandas分类数据
- Pandas可视化
- Pandas IO工具
- Pandas稀疏数据
- Pandas注意事项&窍门
- Pandas与SQL比较
Pandas描述性统计
有很多方法用来集体计算DataFrame
的描述性统计信息和其他相关操作。 其中大多数是sum()
,mean()
等聚合函数,但其中一些,如sumsum()
,产生一个相同大小的对象。 一般来说,这些方法采用轴参数,就像ndarray.{sum,std,...}
,但轴可以通过名称或整数来指定:
- 数据帧(DataFrame) - “index”(axis=0,默认),columns(axis=1)
下面创建一个数据帧(DataFrame),并使用此对象进行演示本章中所有操作。
示例
import pandas as pd import numpy as np #Create a Dictionary of series d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','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 Tom 4.23 James 3.24 Ricky 3.98 Vin 2.56 Steve 3.20 Minsu 4.60 Jack 3.80 Lee 3.78 David 2.98 Gasper 4.80 Betina 4.10 Andres 3.65
sum()方法
返回所请求轴的值的总和。 默认情况下,轴为索引(axis=0
)。
import pandas as pd import numpy as np #Create a Dictionary of series d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','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 TomJamesRickyVinSteveMinsuJackLeeDavidGasperBe... Rating 44.92 dtype: object
每个单独的列单独添加(附加字符串)。
axis=1示例
此语法将给出如下所示的输出,参考以下示例代码 -
import pandas as pd import numpy as np #Create a Dictionary of series d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','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 29.24 28.98 25.56 33.20 33.60 26.80 37.78 42.98 34.80 55.10 49.65 dtype: float64
mean()示例
返回平均值,参考以下示例代码 -
import pandas as pd import numpy as np #Create a Dictionary of series d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','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
std()示例
返回数字列的Bressel标准偏差。
import pandas as pd import numpy as np #Create a Dictionary of series d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','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中描述性统计信息的函数,下表列出了重要函数 -
编号 | 函数 | 描述 |
---|---|---|
1 | count() |
非空观测数量 |
2 | sum() |
所有值之和 |
3 | mean() |
所有值的平均值 |
4 | median() |
所有值的中位数 |
5 | mode() |
值的模值 |
6 | std() |
值的标准偏差 |
7 | min() |
所有值中的最小值 |
8 | max() |
所有值中的最大值 |
9 | abs() |
绝对值 |
10 | prod() |
数组元素的乘积 |
11 | cumsum() |
累计总和 |
12 | cumprod() |
累计乘积 |
注 - 由于DataFrame是异构数据结构。通用操作不适用于所有函数。
- 类似于:
sum()
,cumsum()
函数能与数字和字符(或)字符串数据元素一起工作,不会产生任何错误。字符聚合从来都比较少被使用,虽然这些函数不会引发任何异常。 - 由于这样的操作无法执行,因此,当DataFrame包含字符或字符串数据时,像
abs()
,cumprod()
这样的函数会抛出异常。
汇总数据
describe()
函数是用来计算有关DataFrame列的统计信息的摘要。
import pandas as pd import numpy as np #Create a Dictionary of series d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','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
是用于传递关于什么列需要考虑用于总结的必要信息的参数。获取值列表; 默认情况下是”数字值”。
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','Minsu','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
现在,使用以下语句并查看输出 -
import pandas as pd import numpy as np #Create a Dictionary of series d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','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
上一篇:Pandas基本功能
下一篇:Pandas函数应用
扫描二维码
程序员编程王