Python 更快进行探索性数据分析的四个方法
作者:Python学习与数据挖掘 发布时间:2021-01-15 05:22:31
大家好,常用探索性数据分析方法很多,比如常用的 Pandas DataFrame 方法有 .head()、.tail()、.info()、.describe()、.plot() 和 .value_counts()。
import pandas as pd
import numpy as np
df = pd.DataFrame( {
"Student" : ["Mike", "Jack", "Diana", "Charles", "Philipp", "Charles", "Kale", "Jack"] ,
"City" : ["London", "London", "Berlin", "London", "London", "Berlin", "London", "Berlin"] ,
"Age" : [20, 40, 18, 24, 37, 40, 44, 20 ],
"Maths_Score" : [84, 80, 50, 36, 44, 24, 41, 35],
"Science_Score" : [66, 83, 51, 35, 43, 58, 71, 65]} )
df
在 Pandas 中创建 groupby() 对象
在许多情况下,我们希望将数据集拆分为多个组并对这些组进行处理。 Pandas 方法 groupby() 用于将 DataFrame 中的数据分组。
与其一起使用 groupby() 和聚合方法,不如创建一个 groupby() 对象。 理想的情况是,我们可以在需要时直接使用此对象。
让我们根据列“City”将给定的 DataFrame 分组
df_city_group = df.groupby("City")
我们创建一个对象 df_city_group,该对象可以与不同的聚合相结合,例如 min()、max()、mean()、describe() 和 count()。 一个例子如下所示。
要获取“City”是Berlin的 DataFrame 子集,只需使用方法 .get_group()
这不需要为每个组创建每个子 DataFrame 的副本,比较节省内存。
另外,使用 .groupby() 进行切片比常规方法快 2 倍!!
使用 .nlargest()
通常,我们根据特定列的值了解 DataFrame 的 Top 3 或 Top 5 数据。例如,从考试中获得前 3 名得分者或从数据集中获得前 5 名观看次数最多的电影。使用 Pandas .nlargest() 是最简单的方式。
df.nlargest(N, column_name, keep = ‘first' )
使用 .nlargest() 方法,可以检索包含指定列的 Top ‘N' 值的 DataFrame 行。
在上面的示例中,让我们获取前 3 个“Maths_Score”的 DataFrame 的行。
如果两个值之间存在联系,则可以修改附加参数和可选参数。 它需要值“first”、“last”和“all”来检索领带中的第一个、最后一个和所有值。这种方法的优点是,你不需要专门对 DataFrame 进行排序。
使用 .nsmallest()
与Top 3 或5 类似,有时我们也需要DataFrame 中的Last 5 条记录。例如,获得评分最低的 5 部电影或考试中得分最低的 5 名学生。使用 Pandas .nsmallest() 是最简单的方式
df.nsmallestst(N, column_name, keep = ‘first' )
使用 .nsmallest() 方法,可以检索包含指定列的底部“N”个值的 DataFrame 行。
在同一个示例中,让我们获取 DataFrame“df”中“Maths_Score”最低的 3 行。
逻辑比较
比较运算符 <、>、<=、>=、==、!= 及其包装器 .lt()、.gt()、.le()、.ge()、.eq() 和 .ne() 分别在以下情况下非常方便将 DataFrame 与基值进行比较,这种比较会产生一系列布尔值,这些值可用作以后的指标。
基于比较对 DataFrame 进行切片
可以基于与值的比较从 DataFrame 中提取子集。
根据两列的比较在现有 DataFrame 中创建一个新列。
所有这些场景都在下面的示例中进行了解释
# 1. Comparing the DataFrame to a base value
# Selecting the columns with numerical values only
df.iloc[:,2:5].gt(50)
df.iloc[:,2:5].lt(50)
# 2. Slicing the DataFrame based on comparison
# df1 is subset of df when values in "Maths_Score" column are not equal or equal to '35'
df1 = df[df["Maths_Score"].ne(35)]
df2 = df[df["Maths_Score"].eq(35)]
# 3. Creating new column of True-False values by comparing two columns
df["Maths_Student"] = df["Maths_Score"].ge(df["Science_Score"])
df["Maths_Student_1"] = df["Science_Score"].le(df["Maths_Score"])
来源:https://blog.csdn.net/weixin_38037405/article/details/121313556
猜你喜欢
- 在查看MySQL对文件的操作中,它在不同的操作系统上对文件的操作,除了使用标准C运行库函数,包括open、close、seek等,在Win3
- Django配置文件settings简单说明,包含时区语言等打开创建好的django工程,查看settings.py文件BASE_DIR =
- 该程序通过绘制树干(最初是树;后来是树枝)并递归地添加树来绘制“树”。 使用Pillow。利用递归函数绘制分形树(fractal tree)
- 本文会把学习过程中遇到的一些小问题和解决办法放在这里,以便于大家能够更好地学习python。一、Python的异常处理因为想到自己不断尝试写
- opencv读取和写入路径有汉字的处理读取图片 img_gt = cv2.imdecode(np.fromfile(path, d
- 简介:IDLE是Python软件包自带的一个集成开发环境,可以方便地创建、运行、调试Python程序。本文包括IDEL安装、使用配置、和运行
- 这篇论坛文章(赛迪网技术社区)主要介绍了如何建立适当的索引实现查询优化的相关问题,具体内容请大家参考下文:索引(index)是除表之外另一重
- 本文实例为大家分享了python实现图书管理系统的具体代码,供大家参考,具体内容如下添加新书查询借阅二次添加新书(读取已有的.xls并修改)
- 你是否知道JavaScript其实也是一个函数式编程语言呢?本指南将教你如何利用JavaScript的函数式特性。要求:你应当已经对Java
- //清空form选择 function clearForm(id){ var formObj = document.getElementBy
- bcp是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据
- 1 以下代码的输出结果为:print(round(-3.6))A.-4B.-4.0C.-3D. -3.02 以下代码的输出结果为(Pytho
- python处理按钮消息的实例详解  
- 这几年比较火的一个漏洞就是jinjia2之类的模板引擎的注入,通过注入模板引擎的一些特定的指令格式,比如 {{1+1}} 而返回了 2 得知
- for循环只是一个多一点的代码,同时循环添加到它。而所涉及的一个循环的共同任务是: 设置一些计数器变量的初始值。 请检查条件语句是正确的。
- 前言我们经常需要将大量数据保存起来以备后续使用,数据库是一个很好的解决方案。在众多数据库中,MySQL数据库算是入门比较简单、语法比较简单,
- 从物理学的机制出发,波动模型相对于光线模型,显然更加接近光的本质;但是从物理学的发展来说,波动光学旨在解决几何光学无法解决的问题,可谓光线模
- ---- 一、 引言: ---- 回滚段是数据库的一部分,它记录数据库变更的信息。使用这些信息实现数据库的读一致性及其恢复。若回滚段出现故障
- 如何使用模板系统让我们深入研究模板系统,你将会明白它是如何工作的。但我们暂不打算将它与先前创建的视图结合在一起,因为我们现在的目的是了解它是
- 目录一个不那么方便的解决方案:实战演练网站在线转换Postman今天介绍个神奇的网站!堪称爬虫偷懒的神器!我们在写爬虫,构建网络请求的时候,