前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >4. Pandas系列 - 基本功能和统计操作

4. Pandas系列 - 基本功能和统计操作

作者头像
Python编程爱好者
发布2020-09-08 15:28:46
6680
发布2020-09-08 15:28:46
举报
  • 一、系列基本功能
  • 二、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示例:

代码语言:javascript
复制
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()等聚合函数的应用

先创建个一个数据帧,然后在此基础上进行演示

代码语言:javascript
复制
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:

代码语言:javascript
复制
    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()方法

代码语言:javascript
复制
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:

代码语言:javascript
复制
>>> print df.sum()
Age                                                     382
Name      TomJamesRickyVinSteveMinsuJackLeeDavidGasperBe...
Rating                                                44.92
dtype: object

sum()方法 - axis=1

代码语言:javascript
复制
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:

代码语言:javascript
复制
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()方法

代码语言:javascript
复制
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:

代码语言:javascript
复制
Age       31.833333
Rating     3.743333
dtype: float64

std()方法 - 标准差

var() - 方差 返回数字列的Bressel标准偏差(标准差)。

代码语言:javascript
复制
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:

代码语言:javascript
复制
Age       9.232682
Rating    0.661628
dtype: float64

四、汇总数据

describe()函数 :DataFrame列的统计信息

指标

details

count

数量

mean

平均值

std

标准差

min

最小值

25%

第一四分位数(Q1),又称“较小四分位数”,等于该样本中所有数值由小到大排列后第25%的数字

50%

中位数

75%

同上类似

max

最大值

代码语言:javascript
复制
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:

代码语言:javascript
复制
    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 - 将所有列汇总在一起(不应将其作为列表值传递)

包含字符串列

代码语言:javascript
复制
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:

代码语言:javascript
复制
    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

五、全部包含

代码语言:javascript
复制
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:

代码语言:javascript
复制
    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
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 计算广告生态 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、系列基本功能
  • 二、DataFrame基本功能
  • 三、基本统计性聚合函数
    • sum()方法
      • sum()方法 - axis=1
        • mean()方法
          • std()方法 - 标准差
          • 四、汇总数据
            • 包含字符串列
            • 五、全部包含
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档