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
猜你喜欢
- 本文给大家介绍vue2.0+webpack环境构造过程。1.首先新建一个目录vue-wkdemo,这是我们的项目目录。执行 npm init
- 下面要学的是列表:任务1、“千年虫”我来了函数enumerateenumerate() 函数用于将一
- $forceUpdate()的使用在Vue官方文档中指出,$forceUpdate具有强制刷新的作用。那在vue框架中,如果data中有一个
- 您是否知道 OpenCV 具有执行行人检测的内置方法?OpenCV 附带一个预训练的 HOG + 线性 SVM 模型,可用于在图像和视频流中
- Django2.0中编写models类下的ForeignKeybook = models.ForeignKey('BookInfo&
- 如果开发者想在一个特定的应用程序中完全控制消息与事件的发送,只需要使用一个默认的"/"命名空间就足够了.但是如果开发者需
- 在Dreamweaver 4.0中,我们就已接触了模板与库的概念,知道它们是批量生成风格类似的网页的好工具。如今在Dreamweaver M
- 本来是在找交通识别的程序,然后凑巧看见了证件照换底,于是学习了一下~一开始在网上找了一个很普遍写的程序,但是效果并不好,想要放弃了,然后看见
- 目录前言:1.Navicat简介2.简易教程分享连接管理库表操作查询窗口筛选表数据运行与转储 SQL 文件导入与导出向导查看页面设置工具目标
- antd-日历组件,前后禁止选择,只能选中间一部分:dateDisabledDate(current) { // 需求有效期的禁止选择时间
- 实例如下:from win32com.client import Dispatch import win32com.client
- 5月20日,微软正式提供了Windows XP下可用的雅黑字体下载,雅黑字体是一款近乎完美的字体,解决了宋体小文字无法辩认的问
- 简单的仿图片验证码,适合新手简单的仿图片验证码演示,很容易被破解,实用性不大,但拿出来给新手学习一下还是不错的:JScript.Asp代码示
- 废话不多说,直接上代码create database mydbuse mydbgocreate table account( i
- 1. 基本环境安装 anaconda 环境, 由于国内登陆不了他的官网 https://www.continuum.io/downloads
- 前言JSON是一种轻量级的数据交换格式。易于阅读和编写。 golang 提供了 encoding/json 包来操作JSON数据。1. 结构
- 前言Go的错误处理这块是日常被大家吐槽较多的地方,我在工作中也观察到一些现象,比较严重的是在各层级的逻辑代码中对错误的处理有些重复。比如,有
- 背景在注册或者登陆场景下,经常会遇到需要输入图片验证码的情况,最经典的就是12306买火车票。图片验证码的破解还是有一定难度的,而且如果配合
- python烟花代码如下# -*- coding: utf-8 -*-import math, random,timeimport thre
- 1. Callbacks您可以将回调方法定义为模型结构的指针,在创建,更新,查询,删除时将被调用,如果任何回调返回错误,gorm将停止未来操