Pandas描述性统计

Pandas描述性统计pandas 描述性统计数值型数据的描述性统计主要包括了计算数值型数据的完整情况 最小值 均值 中位数 最大值 四分位数 极差 标准差 方差 协方差等 在 NumPy 库中一些常用的统计学函数也可用于对数据框进行描述性统计 np min 最小值 np max 最大值 np mean 均值 np ptp 极差 np median 中位数 np std 标准差 np var 方差 np cov 协方差实例 importpandas 创

pandas描述性统计

数值型数据的描述性统计主要包括了计算数值型数据的完整情况、最小值、均值、中位 数、最大值、四分位数、极差、标准差、方差、协方差等。在NumPy库中一些常用的统计学函数也可用于对数据框进行描述性统计。

np.min 最小值 np.max 最大值 np.mean 均值 np.ptp 极差 np.median 中位数 np.std 标准差 np.var 方差 np.cov 协方差 

实例:

import pandas as pd import numpy as np # 创建DF 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])} df = pd.DataFrame(d) print(df) # 测试描述性统计函数 print(df.sum()) print(df.sum(1)) print(df.mean()) print(df.mean(1)) 

pandas提供了统计相关函数:

1 count() 非空观测数量
2 sum() 所有值之和
3 mean() 所有值的平均值
4 median() 所有值的中位数
5 std() 值的标准偏差
6 min() 所有值中的最小值
7 max() 所有值中的最大值
8 abs() 绝对值
9 prod() 数组元素的乘积
10 cumsum() 累计总和
11 cumprod() 累计乘积

pandas还提供了一个方法叫作describe,能够一次性得出数据框所有数值型特征的非空值数目、均值、标准差等。

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()) print(df.describe(include=['object'])) print(df.describe(include=['number'])) 

pandas排序

Pandas有两种排序方式,它们分别是按标签与按实际值排序。

import pandas as pd import numpy as np unsorted_df=pd.DataFrame(np.random.randn(10,2), index=[1,4,6,2,3,5,9,8,0,7],columns=['col2','col1']) print(unsorted_df) 

按行标签排序

使用sort_index()方法,通过传递axis参数和排序顺序,可以对DataFrame进行排序。 默认情况下,按照升序对行标签进行排序。

import pandas as pd import numpy as np 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])} unsorted_df = pd.DataFrame(d) # 按照行标进行排序 sorted_df=unsorted_df.sort_index() print (sorted_df) # 控制排序顺序 sorted_df = unsorted_df.sort_index(ascending=False) print (sorted_df) 

按列标签排序

import numpy as np 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])} unsorted_df = pd.DataFrame(d) # 按照列标签进行排序 sorted_df=unsorted_df.sort_index(axis=1) print (sorted_df) 

按某列值排序

像索引排序一样,sort_values()是按值排序的方法。它接受一个by参数,它将使用要与其排序值的DataFrame的列名称。

import pandas as pd import numpy as np 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])} unsorted_df = pd.DataFrame(d) # 按照年龄进行排序 sorted_df = unsorted_df.sort_values(by='Age') print (sorted_df) # 先按Age进行升序排序,然后按Rating降序排序 sorted_df = unsorted_df.sort_values(by=['Age', 'Rating'], ascending=[True, False]) print (sorted_df) 

pandas分组

在许多情况下,我们将数据分成多个集合,并在每个子集上应用一些函数。在应用函数中,可以执行以下操作 :

  • 聚合 – 计算汇总统计
  • 转换 – 执行一些特定于组的操作
  • 过滤 – 在某些情况下丢弃数据
import pandas as pd ipl_data = { 
   'Team': ['Riders', 'Riders', 'Devils', 'Devils', 'Kings', 'kings', 'Kings', 'Kings', 'Riders', 'Royals', 'Royals', 'Riders'], 'Rank': [1, 2, 2, 3, 3,4 ,1 ,1,2 , 4,1,2], 'Year': [2014,2015,2014,2015,2014,2015,2016,2017,2016,2014,2015,2017], 'Points':[876,789,863,673,741,812,756,788,694,701,804,690]} df = pd.DataFrame(ipl_data) print(df) 

将数据拆分成组

# 按照年份Year字段分组 print (df.groupby('Year')) # 查看分组结果 print (df.groupby('Year').groups) 

迭代遍历分组

groupby返回可迭代对象,可以使用for循环遍历:

grouped = df.groupby('Year') # 遍历每个分组 for year,group in grouped: print (year) print (group) 

获得一个分组细节

grouped = df.groupby('Year') print (grouped.get_group(2014)) 

分组聚合

聚合函数为每个组返回聚合值。当创建了分组(group by)对象,就可以对每个分组数据执行求和、求标准差等操作。

# 聚合每一年的平均的分 grouped = df.groupby('Year') print (grouped['Points'].agg(np.mean)) # 聚合每一年的分数之和、平均分、标准差 grouped = df.groupby('Year') agg = grouped['Points'].agg([np.sum, np.mean, np.std]) print (agg) 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232090.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Django(32)自定义过滤器[通俗易懂]

    Django(32)自定义过滤器[通俗易懂]前言虽然DTL给我们内置了许多好用的过滤器。但是有些时候还是不能满足我们的需求。因此Django给我们提供了一个接口,可以让我们自定义过滤器,实现自己的需求。自定义过滤器首先在某个app中,创建

    2022年7月29日
    4
  • Ubuntu安装超好用的Edge浏览器

    Ubuntu安装超好用的Edge浏览器Edge与Chrome都基于开源浏览器Chromium。但是Chrome由与众所周知的原因,扩展商店,翻译等服务延迟高,并不好用。相比较Edge体验起来会更流畅。但是通过官方地址https://www.microsoft.com/zh-cn/edge并没有Linux版本。这里可以通过https://www.microsoftedgeinsider.com/zh-cn/下载官方内部版本。…

    2022年7月21日
    30
  • struts2.0的工作原理「建议收藏」

    struts2.0的工作原理「建议收藏」客户端发出一个请求,服务器端StrutsPreparedAndExceuteFilter接收请求,如果该请求是一个以.action结尾请求,则Struts2将请求转发至相应的Action,进行数

    2022年7月2日
    22
  • SQL2005关于quotename的用法(转)[通俗易懂]

    SQL2005关于quotename的用法(转)[通俗易懂]首先,sqlserver里的标识符有一定的规则,比如 你createtableabc123(…)那么中间含有空格,它不是符合规则的。你会写做createtable[abc123](….)即以[]来定界标识符。quotename将字串成为有效的标识符。它有什么用呢?我举个例子:你有个表名字叫做aa[]bb当

    2022年7月25日
    10
  • java的三种不同注释方式

    java的三种不同注释方式注释:是一种在程序源代码中插入的不影响程序运行的文字,可以在不妨碍程序运行的同时,使得代码具有更强的可读性(提前注释好代码的作用总是比看一遍代码理解其作用来的快的),既方便自己回头修改与更新代码,也方便了他人阅读自己的代码。java中,有三种不同的注释方式:我们先写最熟悉的”HelloWorld”代码publicclassHelloWorld{ publicstatic…

    2022年7月8日
    18
  • linux下安装opencv_linux下安装pycharm

    linux下安装opencv_linux下安装pycharm一、RabbitMQ介绍RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。AMQP,即AdvancedMessageQ…

    2022年9月28日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号