文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python 更快进行探索性数据分析的四个方法

2024-04-02 19:55

关注

大家好,常用探索性数据分析方法很多,比如常用的 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 与基值进行比较,这种比较会产生一系列布尔值,这些值可用作以后的指标。

所有这些场景都在下面的示例中进行了解释


# 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"])

总结

在使用 Python 进行数据分析时,我发现这些方法非常方便,它确实让数据分析变得更快。欢迎大家尝试这些,如果你有那些更棒的方法,欢迎评论区留言!

技术交流

欢迎转载、收藏、有所收获点赞支持一下!

在这里插入图片描述

到此这篇关于Python 更快进行探索性数据分析的四个方法的文章就介绍到这了,更多相关Python 数据分析内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯