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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CentOS7 安装 Python 3.9.0[通俗易懂]

    CentOS7 安装 Python 3.9.0[通俗易懂]文章目录1.安装编译相关工具2.创建Python文件夹下载安装包3.编译安装4.创建软连接5.验证1.安装编译相关工具安装开发库yum-ygroupinstall”Developmenttools”安装依赖环境yum-yinstallzlibzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devel

    2022年9月24日
    5
  • go语言教程零基础入门到精通

    go语言教程零基础入门到精通

    2022年2月15日
    50
  • 前端解决跨域的方法ajax_前端性能优化方法

    前端解决跨域的方法ajax_前端性能优化方法前端Ajax跨域解决方案

    2022年8月24日
    9
  • 清除vs2005、vs2008起始页最近打开项目

    清除vs2005、vs2008起始页最近打开项目

    2021年11月17日
    46
  • linux c——dup( )和dup2( )函数详解

    dup()函数和dup2()函数书上在文件操作那一章,已经讲过了,这周看重定向这块,发现它挺重要,就再看了回,记录下。1、dup函数头文件及函数定义:#include<unistd.h>intdup(intoldfd);dup用来复制参数oldfd所指的文件描述符。当复制成功是,返回最小的尚未被使用过的文件描述符,若有错误则返回-1.错误代码存入errno中…

    2022年4月4日
    157
  • 1、时间轮[通俗易懂]

    1、时间轮[通俗易懂]一、什么是时间轮?作为一个粗人,咱不扯什么高级的词汇,直接上图:上面是一张时间轮的示意图,可以看到,这个时间轮就像一个钟表一样,它有刻度,图中画了9个格子,每个格子表示时间精度,比如每个格子表示1s,那么转一圈就是9s,对于钟表上的秒针来说它的最小刻度是1s,秒针转一圈就是60s。时间轮上每个格子储存了一个双向链表,用于记录定时任务,当指针转到对应的格子的时候,会检查对应的任务是否到期,如果到期就会执行链条上的任务。二、为什么使用时间轮?我认为这个世界上任何事物的出现都有它的原因,只是大部分事

    2022年10月1日
    3

发表回复

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

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