• 首先引入需要的库
import numpy as np
import pandas as pd
import matplotlib.pyplot as pyplot
  • 读取数据
ratings_url = 'https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ST0151EN-SkillsNetwork/labs/teachingratings.csv'
ratings_df=pd.read_csv(ratings_url)
  • 查看数据表的前五行数据
ratings_df.head()

输出:

1 查看某个列的数据的统计特征值(eg:平均值、中位数、最小值、最大值)

下面分别查看‘students’列的统计特征值。

  • 查看该列的平均值
ratings_df['students'].mean()

输出:
36.62419006479482

  • 查看该列的中位数
ratings_df['students'].median()

输出:
23.0

  • 查看该列的最小值
ratings_df['students'].min()

输出:
5

  • 查看该列的最大值
ratings_df['students'].max()

输出:
380

2 绘制某列数据的分布直方图

使用matplotlib库,绘制‘beauty’列的直方图。

import matplotlib.pyplot as pyplot
pyplot.hist(ratings_df['beauty'])

输出:

3 将数据按列值分类进行统计分析

  • 首先使用groupby()方法将数据按照某一列的值进行分类(就和sql语言中的group by子句的功能一样)
  • 分组之后,可以对每一组中的数据进行agg聚合操作
  • 最后可以运用reset_index()方法将原来标签变为新的一列数据

3.1 Pandas.groupby()方法

groupby()方法的参数是要进行分组的依据,即指定某一个列名,根据该列的不同取值进行分类
例如,下面左边的数据按照‘company’进行分类的过程如下:(groupby(‘company’))
(图片来源:博客:[https://zhuanlan.zhihu.com/p/101284491?utm_source=wechat_session])

3.2 agg聚合操作

聚合操作是groupby之后非常常见的操作。也和sql语言的聚合操作类似。

下面的表格介绍了常见的聚合操作函数:

(图片来源:博客:[https://zhuanlan.zhihu.com/p/101284491?utm_source=wechat_session])

聚合函数的参数是字典形式的变量。key值为想要进行统计分析的列名,对应的values值为所要进行的聚合操作。
例如:
(数据来源:博客:[https://zhuanlan.zhihu.com/p/101284491?utm_source=wechat_session])

3.3 reset_index() 改变索引

下面的代码显示了reset_index()方法的用途:

  • 没有使用reset_index()方法:
    下面的代码将数据根据性别gender分类:male & female。然后对分类后不同类的数据的‘beauty’值进行求平均值、标准差、方差的计算。
ratings_df.groupby('gender').agg({'beauty':['mean', 'std', 'var']})

输出:

  • 使用reset_index()方法的输出:
ratings_df.groupby('gender').agg({'beauty':['mean', 'std', 'var']}).reset_index()

输出:


可见,该方法把分类的素引变成了新的一列。索引变成了默认的,从0开始的顺序数列。

3.4 综合案例

针对上面的ratings_df数据框架进行的一系列操作:

(1)男、女教员的平均颜值评分有差异吗?给出男女教员的颜值评分平均值和标准差。

ratings_df.groupby('gender').agg({'beauty':['mean', 'std', 'var']}).reset_index()

输出:

(2)计算男性和女性终身教授的比例。观察终身职位的地位因性别而异吗?

tenure_count = ratings_df.groupby('gender').agg({'tenure': 'count'}).reset_index()
tenure_count

输出:


只看数量貌似结果不太权威,需要查看男性、女性终身教员在特定群体中的占比

tenure_count['percentage'] = 100 * tenure_count.tenure/tenure_count.tenure.sum()
tenure_count

输出:

可见,男性教员中,终身教员的占比更高一些。

(3)计算终身教授是少数族裔的比例。如果教师是一个明显的少数群体,你会说终身教职的地位是不同的吗?

minority_prof = ratings_df.groupby('minority').agg({'tenure': 'count'}).reset_index()
minority_prof['mino/prof'] = minority_prof.tenure / minority_prof.tenure.sum()
minority_prof

输出:


从上面的比例数据可见,确实少数族裔中终身教授的比例更低一些。

(4)平均年龄是否因任期而异?给出终身教授和非终身教授的年龄的平均值和标准差。

age_tenure = ratings_df.groupby('tenure').agg({'age': ['mean', 'std']}).reset_index()
age_tenure

输出:


从结果可见,虽然终身教授(tenure = yes)的平均年龄更低一些,但是终身教授年龄的分布更加离散。

(5)终身教授的评分中位数是多少

ratings_df[ratings_df['tenure'] == 'yes']['eval'].median()

输出:

4.0

Pandas的学习之——使用Pandas进行描述性统计相关推荐

  1. 应用统计学与R语言实现学习笔记(三)——描述性统计

    Chapter 3 Descriptive Statistics 本篇是第三章,内容是描述性统计.同时在这一章会开始渗透R语言的相关内容.但整体还是以理论为主. Chapter 3 Descripti ...

  2. 统计学习二:数据的描述性统计

    参加此统计学习小组主要是巩固 python 语言,故所有笔记都以 python 代码实现. 完整代码见 github : StatisticLearning 如何描述数据的分布?可以从以下三个方面来描 ...

  3. Pandas组队学习Task05

    Pandas组队学习Task05 import pandas as pd import numpy as np path = r"C:\Users\yongx\Desktop\data&qu ...

  4. pandas基础(part3)--描述性统计

    学习笔记,这个笔记以例子为主. 开发工具:Spyder 文章目录 numpy描述性统计 Pandas描述性统计 numpy描述性统计 数值型数据的描述性统计,主要包括了计算数值型数据的完整情况.最小值 ...

  5. Python模块之Pandas模块学习笔记

    目录 一.模块的安装 二.数据结构 1. DataFrame的创建 2. DataFrame索引的修改 3. DataFrame数据信息查看 三.文件的读取和写入 1. 读取 2. 写入 四. 数据的 ...

  6. pandas使用groupby函数和describe函数计算不同分组的描述性统计(descriptive statistics of each group in dataframe)

    pandas使用groupby函数和describe函数计算不同分组的描述性统计(descriptive statistics of each group in dataframe) 目录

  7. Python中的pandas模块学习

    本文是基于Windows系统环境,学习和测试pandas模块: Windows 10 PyCharm 2018.3.5 for Windows (exe) python 3.6.8 Windows x ...

  8. pandas版本_Datawhale十二月Pandas组学习打卡Task00.准备工作

    编号112打卡 Pandas大名如雷贯耳,做数据处理不可能不用Pandas.但以前没有系统学过,十分懵懂.这次跟着Datawhale的学习营学习,争取能深入全面的了解.我们这次组队的队名叫" ...

  9. Python语言学习:利用pandas对两列字段元素求差集(对比两列字段所有元素的异同)

    Python语言学习:利用pandas对两列字段元素求差集(对比两列字段所有元素的异同) 目录 利用pandas对两列字段元素求差集(对比两列字段所有元素的异同) 输出结果 实现代码 利用pandas ...

最新文章

  1. iOS中 HTTP/Socket/TCP/IP通信协议详解 韩俊强的博客
  2. Android开发之Service与Activity数据交互(源代码分享)
  3. java json转map
  4. 【Python】Django生成API 文档
  5. wgs84坐标格式转换度分秒_一起爬山吗?寻找GIS坐标系统中“隐秘的角落”
  6. java数据类型划分_一张图搞定java数据类型的划分
  7. 数组的一些与遍历相关的方法总结
  8. com.css.common.jdbcTemplate中的类
  9. cross-entropy函数
  10. LeetCode——Word Break
  11. Ov两款骁龙865手机即将发布:其中一款或低于2999元
  12. ANT出现“警告: 编码 GBK 的不可映射字符”解决方法
  13. bzoj 1015: [JSOI2008]星球大战starwar
  14. vue 中引入使用jquery
  15. java core 之 IO流
  16. Aircrack-ng破解WEP
  17. 计算机提示无法识别优盘,插入U盘显示无法识别怎么办
  18. [工业互联-2]:工业有线互联总线之CAN总线
  19. 梳理19年上半年图文记录笔记(ios篇)
  20. 5G网下通过网络编码增强转发策略的NDN物联网内容分发模型

热门文章

  1. jdk新特性::作用
  2. 人工智能机器人-智能时代的新纪元
  3. Spring实战第五版源码
  4. 库位管理html,仓库日常管理之库位管理篇
  5. C语言-找出0-100内的素数
  6. 关闭win10自动更新——组策略
  7. [FAQ21282]分区表中分区配置的大小与MTxxxx_Android_scatter.txt中不一致
  8. [转]CANON(佳能)PIXMAMP150清零
  9. steam网站显示invalid SSL certerficate
  10. 粒子群算法PSO优化最小二乘支持向量机做回归预测,多输入单输出模型。PSO-LSSVM