原创 学而知不足 Python编程爱好者 2020-07-14
收录于话题
#数据分析专栏
12个
一、系列基本功能
二、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