首页 > 其他分享 >掌握pandas cut函数,一键实现数据分类

掌握pandas cut函数,一键实现数据分类

时间:2024-05-23 20:56:51浏览次数:21  
标签:cut 分类 df 场均 一键 伤害 选手 plt pandas

pandas中的cut函数可将一维数据按照给定的区间进行分组,并为每个值分配对应的标签。
其主要功能是将连续的数值数据转化为离散的分组数据,方便进行分析和统计。

1. 数据准备

下面的示例中使用的数据采集自王者荣耀比赛的统计数据。
导入数据:

# 2023年世冠比赛选手的数据
fp = r"D:\data\player-2023世冠.csv"

df = pd.read_csv(fp)

# 这里只保留了下面示例中需要的列
df = df.loc[:, ["排名", "选手", "场均经济", "场均伤害"]]
df

image.png

2. 使用示例

每个选手的“场均经济”“场均伤害”是连续分布的数据,为了整体了解所有选手的情况,
可以使用下面的方法将“场均经济”“场均伤害”分类。

2.1. 查看数据分布

首先,可以使用直方图的方式看看数据连续分布的情况:

import matplotlib.pyplot as plt

df.loc[:, ["场均经济", "场均伤害"]].hist()
plt.show()

image.png


图中的横轴是“经济”和“伤害”的数值,纵轴是选手的数量。

2.2. 定制分布参数

从默认的直方图中可以看出大部分选手的“场均经济”“场均伤害”大致在什么范围,
不过,为了更精细的分析,我们可以进一步定义自己的分类范围,看看各个分类范围内的选手数量情况。

比如,我们将“场均经济”分为3块,分别为0~5000),5000~10000),10000~20000)。
同样,对于“场均伤害”,也分为3块,分别为0~50000),50000~100000),100000~200000)。

bins1 = [0, 5000, 10000, 20000]
bins2 = [0, 50000, 100000, 200000]

labels = ["低", "中", "高"]
s1 = "场均经济"
s2 = "场均伤害"
df[f"{s1}-分类"] = pd.cut(df[s1], bins=bins1, labels=labels)
df[f"{s2}-分类"] = pd.cut(df[s2], bins=bins2, labels=labels)

df

image.png


分类之后,选手被分到3个类别之中,然后再绘制直方图。

df.loc[:, f"{s1}-分类"].hist()
plt.title(f"{s1}-分类")
plt.show()

image.png


从这个图看出,大部分选手都是“中”“高”的经济,说明职业选手很重视英雄发育。

df.loc[:, f"{s2}-分类"].hist()
plt.title(f"{s2}-分类")
plt.show()

image.png


从图中可以看出,打出高伤害的选手比例并不高,可能职业比赛中,更多的是团队作战。

3. 总结

总的来说,cut函数的主要作用是将输入的数值数据(可以是一维数组、Series或DataFrame的列)按照指定的间隔或自定义的区间边界进行划分,并为每个划分后的区间分配一个标签

这样,原始的连续数据就被转化为了离散的分组数据,每个数据点都被分配到了一个特定的组中,从而方便后续进行分析和统计。

标签:cut,分类,df,场均,一键,伤害,选手,plt,pandas
From: https://blog.csdn.net/Gefangenes/article/details/139052043

相关文章

  • Liquibase中MARK_RAN与EXECUTED:解析与实战应用.
    哈喽,大家好,我是木头左!引言在软件开发的世界里,数据库的版本控制是一项重要的工作。Liquibase是一个开源的、企业级的数据库版本控制工具,它能够帮助更好地管理和控制数据库的版本。在这篇文章中,将深入探讨Liquibase中的两个重要概念:MARK_RAN和EXECUTED。这两个概念虽然看起来简......
  • Langchain Plan-And-Execute框架使用
    代码示例:可以调用自定义工具函数importosos.environ['OpenAI_API_KEY']='sk-piAxxxx替换你的xxxU7F5Zrc'os.environ['SERPAPI_API_KEY']='950fbd942ee77替换你的xxx37b'#设置OpenAI网站和SerpApi网站提供的API密钥fromdotenvimportload_dotenv#用于加......
  • Unity安卓IOS一键打包
    添加菜单构建按钮,使用下面API进行构建,注意设置和配置等usingSystem;usingSystem.IO;usingAssetBundles;usingLiXiaoQian.Common.Editor.Tools;usingUnityEditor;usingUnityEngine;///打包工具publicclassBuildTool{[MenuItem("Tools/构建/Android平台")]......
  • 一键自动化博客发布工具,用过的人都说好(知乎篇)
    我们已经学习了很多自动化的知识了,接下来让我们看看在blog-auto-publishing-tools中是如何实现自动发送博文到知乎的。前提条件前提条件当然是先下载blog-auto-publishing-tools这个博客自动发布工具,地址如下:https://github.com/ddean2009/blog-auto-publishing-tools知乎的......
  • 一键自动化博客发布工具,用过的人都说好(腾讯云篇)
    虽然头条现在非常强大,但是我还是不得不吐槽一下头条的博客发布,居然不支持markdown格式。并且在某些浏览器上还会出现编辑页面打不开的情况,让我一度怀疑是我浏览器的问题。不过,这都不重要,重要的是blog-auto-publishing-tools这个工具可以实现头条的自动化。前提条件前提条件当......
  • JavaScript execute asynchronous functions in Parallel with count and Promise All
    JavaScriptexecuteasynchronousfunctionsinParallelwithcountandPromiseAllInOneJavaScript使用count和Promise并行执行异步函数errorsfunctionpromiseAll<T>(functions:Fn<T>[]):Promise<T[]>{returnnewPromise((resolve,reject)=&......
  • 一键自动化博客发布工具,用过的人都说好(腾讯云篇)
    之前说过blog-auto-publishing-tools的实现方式是连到现有的浏览器中,而不是使用内置的浏览器。其中一个很大程度的原因是像腾讯云这种博客发布平台几乎每天都需要重新登录一次,登录还需要手机扫码。所以自动化实现起来非常复杂。所以,我们需要一个已经登录好的浏览器,来实现自动化......
  • 人工智能帮你一键生成完美架构图
    简介架构图通过图形化的表达方式,用于呈现系统、软件的结构、组件、关系和交互方式。一个明确的架构图可以更好地辅助业务分析、技术架构分析的工作。架构图的设计是一个有难度的任务,设计者必须要对业务、相关技术栈都非常清晰才能设计出来符合需求的架构图。实践演练有明确的......
  • Python Pandas 数据分组
    在数据处理中,分箱、分组是一种常见的技术,用于将连续数据的间隔分组到“箱”或“桶”中。我们将讨论以下两种方法:使用Pandas的between和loc方法:between方法返回一个布尔向量,指示Series元素是否位于给定的边界值之间。loc方法用于根据条件选择数据。示例:将学......
  • Python数据分析numpy、pandas、matplotlib包
    Python数据分析numpy、pandas、matplotlib一、基础1.1notebook的一些配置快捷键:ctrl+enter执行单元格程序并且不跳转到下一行esc+L可以显示行号结果是打印的而没有返回任何的值就没有out1.2列表基础知识回顾b=[1,2.3,'a','b']b#列表中的元素允许各个元素不一样......