4. Pandas系列 - 基本功能和统计操作
- 一、系列基本功能
- 二、DataFrame基本功能
- 三、基本统计性聚合函数
- sum()方法
- sum()方法 - axis=1
- mean()方法
- std()方法 - 标准差
- 四、汇总数据
- 包含字符串列
- 五、全部包含
一、系列基本功能
编号 |
属性或方法 |
描述 |
---|---|---|
1 |
axes |
返回行轴标签列表 |
2 |
dtype |
返回对象的数据类型(dtype) |
3 |
empty |
如果系列为空,则返回True |
4 |
ndim |
返回底层数据的维数,默认定义:1 |
5 |
size |
返回基础数据中的元素数 |
6 |
values |
将系列作为ndarray返回 |
7 |
head() |
返回前n行 |
8 |
tail() |
返回最后n行 |
axes示例:
import pandas as pd
import numpy as np
#Create a series with 100 random numbers
>>> s = pd.Series(np.random.randn(4))
>>> s
0 -0.562959
1 1.546666
2 -0.950136
3 -0.067827
dtype: float64
>>> s.axes ## 返回行轴标签列表
[RangeIndex(start=0, stop=4, step=1)]
>>> s.dtype ## 返回对象的数据类型(dtype)
dtype('float64')
>>> s.empty ## 如果系列为空,则返回True
False
>>> s.ndim ## 返回底层数据的维数,默认定义:1
1
>>> s.size ## 返回基础数据中的元素数
4
>>> s.values ## 将系列作为ndarray返回
array([-0.56295907, 1.54666615, -0.95013554, -0.06782656])
>>> s.head() ## 返回前n行
0 -0.562959
1 1.546666
2 -0.950136
3 -0.067827
dtype: float64
>>> s.tail() ## 返回最后n行
0 -0.562959
1 1.546666
2 -0.950136
3 -0.067827
dtype: float64
二、DataFrame基本功能
列出比较重要的一些方法
编号 |
属性或方法 |
描述 |
---|---|---|
1 |
T/tranpose() |
转置行和列 |
2 |
axes |
返回一个列,行轴标签和列轴标签作为唯一的成员 |
3 |
dtypes |
返回此对象中的数据类型(dtypes) |
4 |
empty |
如果NDFrame完全为空[无项目],则返回为True; 如果任何轴的长度为0 |
5 |
ndim |
轴/数组维度大小 |
6 |
shape |
返回表示DataFrame的维度的元组 |
7 |
size |
NDFrame中的元素数 |
8 |
values |
NDFrame的Numpy表示 |
9 |
head() |
返回开头前n行 |
10 |
tail() |
返回最后n行 |
sum(),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
res:
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 Minsu 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
三、基本统计性聚合函数
编号 |
函数 |
描述 |
---|---|---|
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()方法
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()
res:
>>> print df.sum()
Age 382
Name TomJamesRickyVinSteveMinsuJackLeeDavidGasperBe...
Rating 44.92
dtype: object
sum()方法 - 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(axis=1)
res:
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 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()
res:
Age 31.833333
Rating 3.743333
dtype: float64
std()方法 - 标准差
var() - 方差 返回数字列的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()
res:
Age 9.232682
Rating 0.661628
dtype: float64
四、汇总数据
describe()函数 :DataFrame列的统计信息
指标 |
details |
---|---|
count |
数量 |
mean |
平均值 |
std |
标准差 |
min |
最小值 |
25% |
第一四分位数(Q1),又称“较小四分位数”,等于该样本中所有数值由小到大排列后第25%的数字 |
50% |
中位数 |
75% |
同上类似 |
max |
最大值 |
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()
res:
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 Minsu 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
<==============================
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
可以看到,默认情况下排除了字符串列,只统计了数字的列 那么,如果想要都包含的话,该怎么操作:
- 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
print df.describe(include=['object'])
res:
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 Minsu 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
>>> 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
print df. describe(include='all')
res:
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 Minsu 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
>>> 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
- Enterprise Library 4.1学习笔记7----缓存应用程序块之SqlDependency
- linux运维中的命令梳理(一)
- 可视化你的BLAST结果
- linux运维中的命令梳理(二)
- VB-取日期属于星期几
- 全球AI新闻创新实践系列③:华邮、雅虎、美联社、Quartz怎么干!
- nginx+php负载均衡集群环境中的session共享方案梳理
- PowerPoint发布及链接图片的处理
- EXCEL单元格的引用方式
- SqlDependency学习笔记
- linux系统下对网站实施负载均衡+高可用集群需要考虑的几点
- 运维利器-ClusterShell集群管理操作记录
- img标签的src=""会引起的Page_Load多次执行
- 2017影响扑克圈的黑暗事件
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 玩转 lua in Redis
- 用docker快速搭建wordpress博客
- 生产环境优雅的重启基于Nginx、Tornado的Web服务进程
- nginx记录post body/payload数据 日志用打印出结果
- nginx的location、rewrite玩法详解
- Redis Lua脚本调试
- 安装elasticsearch 5.x, 6.x 常见问题(坑)的解决
- 轻松搞懂elasticsearch概念
- 深入Golang调度器之GMP模型
- 深入Golang之sync.Pool详解
- 一次对电视盒子的漏洞分析
- MQ选型之RabbitMQ
- httprouter与 fasthttp 的性能对比
- Nmap 脚本研究
- Nmap NSE 库分析 >>> http