前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Pandas中的数据分类

Pandas中的数据分类

原创
作者头像
皮大大
修改于 2021-09-06 10:11:16
修改于 2021-09-06 10:11:16
8.8K0
举报

公众号:尤而小屋 作者:Peter 编辑:Pete

大家好,我是Peter~

本文中介绍的是Categorical类型,主要实现的数据分类问题,用于承载基于整数的类别展示或编码的数据,帮助使用者获得更好的性能和内存使用。

<!--MORE-->

背景:统计重复值

在一个Series数据中经常会出现重复值,我们需要提取这些不同的值并且分别计算它们的频数:

代码语言:txt
AI代码解释
复制
import numpy as np

import pandas as pd
代码语言:txt
AI代码解释
复制
data = pd.Series(["语文","数学","英语","数学","英语","地理","语文","语文"])

data
代码语言:txt
AI代码解释
复制
0    语文
代码语言:txt
AI代码解释
复制
1    数学
代码语言:txt
AI代码解释
复制
2    英语
代码语言:txt
AI代码解释
复制
3    数学
代码语言:txt
AI代码解释
复制
4    英语
代码语言:txt
AI代码解释
复制
5    地理
代码语言:txt
AI代码解释
复制
6    语文
代码语言:txt
AI代码解释
复制
7    语文
代码语言:txt
AI代码解释
复制
dtype: object
代码语言:txt
AI代码解释
复制
# 1、提取不同的值



pd.unique(data)
代码语言:txt
AI代码解释
复制
array(['语文', '数学', '英语', '地理'], dtype=object)
代码语言:txt
AI代码解释
复制
# 2、统计每个值的个数



pd.value\_counts(data)
代码语言:txt
AI代码解释
复制
语文    3
代码语言:txt
AI代码解释
复制
数学    2
代码语言:txt
AI代码解释
复制
英语    2
代码语言:txt
AI代码解释
复制
地理    1
代码语言:txt
AI代码解释
复制
dtype: int64

分类、字典编码

通过整数展现的方式,被称作分类或者字典编码。不同的数组可以称之为数据的类别、字典或者层级

代码语言:txt
AI代码解释
复制
df = pd.Series([0,1,1,0] \* 2)

df
代码语言:txt
AI代码解释
复制
0    0
代码语言:txt
AI代码解释
复制
1    1
代码语言:txt
AI代码解释
复制
2    1
代码语言:txt
AI代码解释
复制
3    0
代码语言:txt
AI代码解释
复制
4    0
代码语言:txt
AI代码解释
复制
5    1
代码语言:txt
AI代码解释
复制
6    1
代码语言:txt
AI代码解释
复制
7    0
代码语言:txt
AI代码解释
复制
dtype: int64
代码语言:txt
AI代码解释
复制
# dim使用维度表



dim = pd.Series(["语文","数学"])

dim
代码语言:txt
AI代码解释
复制
0    语文
代码语言:txt
AI代码解释
复制
1    数学
代码语言:txt
AI代码解释
复制
dtype: object

如何将0-语文,1-数学在df进行一一对应呢?使用**take**方法来实现

代码语言:txt
AI代码解释
复制
df1 = dim.take(df)

df1
代码语言:txt
AI代码解释
复制
0    语文
代码语言:txt
AI代码解释
复制
1    数学
代码语言:txt
AI代码解释
复制
1    数学
代码语言:txt
AI代码解释
复制
0    语文
代码语言:txt
AI代码解释
复制
0    语文
代码语言:txt
AI代码解释
复制
1    数学
代码语言:txt
AI代码解释
复制
1    数学
代码语言:txt
AI代码解释
复制
0    语文
代码语言:txt
AI代码解释
复制
dtype: object
代码语言:txt
AI代码解释
复制
type(df1)  # Series数据
代码语言:txt
AI代码解释
复制
pandas.core.series.Series

Categorical类型创建

生成一个Categorical实例对象

通过例子来讲解Categorical类型的使用

代码语言:txt
AI代码解释
复制
subjects = ["语文","数学","语文","语文"] \* 2



N = len(subjects)
代码语言:txt
AI代码解释
复制
df2 = pd.DataFrame({

    "subject":subjects,

    "id": np.arange(N),  # 连续整数

    "score":np.random.randint(3,15,size=N),  # 随机整数

    "height":np.random.uniform(165,180,size=N)  # 正态分布的数据

   },

  columns=["id","subject","score","height"])  # 指定列名称的顺序



df2

可以将subject转成Categorical类型:

代码语言:txt
AI代码解释
复制
subject\_cat = df2["subject"].astype("category")

subject\_cat

我们发现了subject_cat的两个特点:

  • 它不是numpy数组,而是一个category数据类型
  • 它里面有两个取值:语文和数学
代码语言:txt
AI代码解释
复制
s = subject\_cat.values

s
代码语言:txt
AI代码解释
复制
['语文', '数学', '语文', '语文', '语文', '数学', '语文', '语文']
代码语言:txt
AI代码解释
复制
Categories (2, object): ['数学', '语文']
代码语言:txt
AI代码解释
复制
type(s)
代码语言:txt
AI代码解释
复制
pandas.core.arrays.categorical.Categorical
代码语言:txt
AI代码解释
复制
s.categories  # 查看分类
代码语言:txt
AI代码解释
复制
Index(['数学', '语文'], dtype='object')
代码语言:txt
AI代码解释
复制
s.codes  # 查看分类编码
代码语言:txt
AI代码解释
复制
array([1, 0, 1, 1, 1, 0, 1, 1], dtype=int8)

如何生成Categorical对象

主要是两种方式:

  • 指定DataFrame的一列为Categorical对象
  • 通过pandas.Categorical来生成
  • 通过构造函数from_codes,前提是你必须先获得分类编码数据
代码语言:txt
AI代码解释
复制
# 方式1



df2["subject"] = df2["subject"].astype("category")

df2.subject
代码语言:txt
AI代码解释
复制
0    语文
代码语言:txt
AI代码解释
复制
1    数学
代码语言:txt
AI代码解释
复制
2    语文
代码语言:txt
AI代码解释
复制
3    语文
代码语言:txt
AI代码解释
复制
4    语文
代码语言:txt
AI代码解释
复制
5    数学
代码语言:txt
AI代码解释
复制
6    语文
代码语言:txt
AI代码解释
复制
7    语文
代码语言:txt
AI代码解释
复制
Name: subject, dtype: category
代码语言:txt
AI代码解释
复制
Categories (2, object): ['数学', '语文']
代码语言:txt
AI代码解释
复制
# 方式2



fruit = pd.Categorical(["苹果","香蕉","葡萄","苹果","苹果","香蕉"])

fruit
代码语言:txt
AI代码解释
复制
['苹果', '香蕉', '葡萄', '苹果', '苹果', '香蕉']
代码语言:txt
AI代码解释
复制
Categories (3, object): ['苹果', '葡萄', '香蕉']
代码语言:txt
AI代码解释
复制
# 方式3



categories = ["height","score","subject"]

codes = [0,1,0,2,1,0]



my\_data = pd.Categorical.from\_codes(codes, categories)

my\_data
代码语言:txt
AI代码解释
复制
['height', 'score', 'height', 'subject', 'score', 'height']
代码语言:txt
AI代码解释
复制
Categories (3, object): ['height', 'score', 'subject']

一般分类转换是不会指定类别的顺序,我们可以通过一个参数ordered来指定有有意义的顺序:

代码语言:txt
AI代码解释
复制
['height', 'score', 'height', 'subject', 'score', 'height']
代码语言:txt
AI代码解释
复制
Categories (3, object): ['height' < 'score' < 'subject']

上面的输出结果height<socre,表明height的顺序在score的前面。如果某个分类实例未排序,我们使用as_ordered进行排序:

代码语言:txt
AI代码解释
复制
# my\_data未排序



my\_data.as\_ordered()
代码语言:txt
AI代码解释
复制
['height', 'score', 'height', 'subject', 'score', 'height']
代码语言:txt
AI代码解释
复制
Categories (3, object): ['height' < 'score' < 'subject']

Categorical对象计算

统计计算

代码语言:txt
AI代码解释
复制
np.random.seed(12345)



data1 = np.random.randn(100)

data1[:10]
代码语言:txt
AI代码解释
复制
array([-0.20470766,  0.47894334, -0.51943872, -0.5557303 ,  1.96578057,
代码语言:txt
AI代码解释
复制
        1.39340583,  0.09290788,  0.28174615,  0.76902257,  1.24643474])
代码语言:txt
AI代码解释
复制
# 计算data1的4分位分箱,并提取统计值



bins\_1 = pd.qcut(data1,4)

bins\_1
代码语言:txt
AI代码解释
复制
[(-0.717, 0.106], (0.106, 0.761], (-0.717, 0.106], (-0.717, 0.106], (0.761, 3.249], ..., (0.761, 3.249], (0.106, 0.761], (-2.371, -0.717], (0.106, 0.761], (0.106, 0.761]]
代码语言:txt
AI代码解释
复制
Length: 100
代码语言:txt
AI代码解释
复制
Categories (4, interval[float64]): [(-2.371, -0.717] < (-0.717, 0.106] < (0.106, 0.761] < (0.761, 3.249]]

可以看到上面的结果返回的值Categories对象

  • 有4种取值情况
  • 看到整个数据的最大值和最小值分别在头尾部
代码语言:txt
AI代码解释
复制
# 在上面的4分位数中使用四分位数名称:Q1\Q2\Q3\Q4



bins\_2 = pd.qcut(data1,4,labels=["Q1","Q2","Q3","Q4"])

bins\_2
代码语言:txt
AI代码解释
复制
['Q2', 'Q3', 'Q2', 'Q2', 'Q4', ..., 'Q4', 'Q3', 'Q1', 'Q3', 'Q3']
代码语言:txt
AI代码解释
复制
Length: 100
代码语言:txt
AI代码解释
复制
Categories (4, object): ['Q1' < 'Q2' < 'Q3' < 'Q4']
代码语言:txt
AI代码解释
复制
bins\_2.codes[:10]
代码语言:txt
AI代码解释
复制
array([1, 2, 1, 1, 3, 3, 1, 2, 3, 3], dtype=int8)

统计groupby来进行汇总统计:

代码语言:txt
AI代码解释
复制
bins\_2 = pd.Series(bins\_2, name="quartile")  # 取名为quartile

bins\_2
代码语言:txt
AI代码解释
复制
0     Q2
代码语言:txt
AI代码解释
复制
1     Q3
代码语言:txt
AI代码解释
复制
2     Q2
代码语言:txt
AI代码解释
复制
3     Q2
代码语言:txt
AI代码解释
复制
4     Q4
代码语言:txt
AI代码解释
复制
      ..
代码语言:txt
AI代码解释
复制
95    Q4
代码语言:txt
AI代码解释
复制
96    Q3
代码语言:txt
AI代码解释
复制
97    Q1
代码语言:txt
AI代码解释
复制
98    Q3
代码语言:txt
AI代码解释
复制
99    Q3
代码语言:txt
AI代码解释
复制
Name: quartile, Length: 100, dtype: category
代码语言:txt
AI代码解释
复制
Categories (4, object): ['Q1' < 'Q2' < 'Q3' < 'Q4']

下面的代码示例是对data1的数据通过bins_2进行分组,生成3个统计函数

代码语言:txt
AI代码解释
复制
results = pd.Series(data1).groupby(bins\_2).agg(["count","min","max"]).reset\_index()

results
代码语言:txt
AI代码解释
复制
results["quartile"] # quartile列保持的原始分类信息
代码语言:txt
AI代码解释
复制
0    Q1
代码语言:txt
AI代码解释
复制
1    Q2
代码语言:txt
AI代码解释
复制
2    Q3
代码语言:txt
AI代码解释
复制
3    Q4
代码语言:txt
AI代码解释
复制
Name: quartile, dtype: category
代码语言:txt
AI代码解释
复制
Categories (4, object): ['Q1' < 'Q2' < 'Q3' < 'Q4']

分类后内存减少

代码语言:txt
AI代码解释
复制
N = 10000000  # 千万的数据



data3 = pd.Series(np.random.randn(N))

labels3 = pd.Series(["foo", "bar", "baz", "quz"] \* (N // 4))
代码语言:txt
AI代码解释
复制
categories3 = labels3.astype("category")  # 分类转换
代码语言:txt
AI代码解释
复制
# 比较两个的内存



print("data3: ",data3.memory\_usage())

print("categories3: ",categories3.memory\_usage())
代码语言:txt
AI代码解释
复制
data3:  80000128
代码语言:txt
AI代码解释
复制
categories3:  10000332

分类方法

访问分类信息

分类方法主要是通过特殊属性cat来实现

代码语言:txt
AI代码解释
复制
data
代码语言:txt
AI代码解释
复制
0    语文
代码语言:txt
AI代码解释
复制
1    数学
代码语言:txt
AI代码解释
复制
2    英语
代码语言:txt
AI代码解释
复制
3    数学
代码语言:txt
AI代码解释
复制
4    英语
代码语言:txt
AI代码解释
复制
5    地理
代码语言:txt
AI代码解释
复制
6    语文
代码语言:txt
AI代码解释
复制
7    语文
代码语言:txt
AI代码解释
复制
dtype: object
代码语言:txt
AI代码解释
复制
cat\_data = data.astype("category")

cat\_data  # 分类数据
代码语言:txt
AI代码解释
复制
0    语文
代码语言:txt
AI代码解释
复制
1    数学
代码语言:txt
AI代码解释
复制
2    英语
代码语言:txt
AI代码解释
复制
3    数学
代码语言:txt
AI代码解释
复制
4    英语
代码语言:txt
AI代码解释
复制
5    地理
代码语言:txt
AI代码解释
复制
6    语文
代码语言:txt
AI代码解释
复制
7    语文
代码语言:txt
AI代码解释
复制
dtype: category
代码语言:txt
AI代码解释
复制
Categories (4, object): ['地理', '数学', '英语', '语文']

新增分类

当实际数据的类别超过了数据中观察到的4个数值:

代码语言:txt
AI代码解释
复制
actual\_cat = ["语文","数学","英语","地理","生物"]



cat\_data2 = cat\_data.cat.set\_categories(actual\_cat)

cat\_data2

上面的分类结果中就出现了"生物"

代码语言:txt
AI代码解释
复制
cat\_data.value\_counts()
代码语言:txt
AI代码解释
复制
语文    3
代码语言:txt
AI代码解释
复制
数学    2
代码语言:txt
AI代码解释
复制
英语    2
代码语言:txt
AI代码解释
复制
地理    1
代码语言:txt
AI代码解释
复制
dtype: int64
代码语言:txt
AI代码解释
复制
cat\_data2.value\_counts()  # 下面的结果中出现了“生物”
代码语言:txt
AI代码解释
复制
语文    3
代码语言:txt
AI代码解释
复制
数学    2
代码语言:txt
AI代码解释
复制
英语    2
代码语言:txt
AI代码解释
复制
地理    1
代码语言:txt
AI代码解释
复制
生物    0
代码语言:txt
AI代码解释
复制
dtype: int64

删除分类

代码语言:txt
AI代码解释
复制
cat\_data3 = cat\_data[cat\_data.isin(["语文","数学"])]  # 只筛选出语文和数学



cat\_data3
代码语言:txt
AI代码解释
复制
0    语文
代码语言:txt
AI代码解释
复制
1    数学
代码语言:txt
AI代码解释
复制
3    数学
代码语言:txt
AI代码解释
复制
6    语文
代码语言:txt
AI代码解释
复制
7    语文
代码语言:txt
AI代码解释
复制
dtype: category
代码语言:txt
AI代码解释
复制
Categories (4, object): ['地理', '数学', '英语', '语文']
代码语言:txt
AI代码解释
复制
cat\_data3.cat.remove\_unused\_categories()  # 删除未使用的分类
代码语言:txt
AI代码解释
复制
0    语文
代码语言:txt
AI代码解释
复制
1    数学
代码语言:txt
AI代码解释
复制
3    数学
代码语言:txt
AI代码解释
复制
6    语文
代码语言:txt
AI代码解释
复制
7    语文
代码语言:txt
AI代码解释
复制
dtype: category
代码语言:txt
AI代码解释
复制
Categories (2, object): ['数学', '语文']

创建虚拟变量

将分类数据转成虚拟变量,也就是one-hot编码(独热码);产生的DataFrame中不同的类别都是它的一列,看下面的例子:

代码语言:txt
AI代码解释
复制
data4 = pd.Series(["col1","col2","col3","col4"] \* 2, dtype="category")

data4
代码语言:txt
AI代码解释
复制
0    col1
代码语言:txt
AI代码解释
复制
1    col2
代码语言:txt
AI代码解释
复制
2    col3
代码语言:txt
AI代码解释
复制
3    col4
代码语言:txt
AI代码解释
复制
4    col1
代码语言:txt
AI代码解释
复制
5    col2
代码语言:txt
AI代码解释
复制
6    col3
代码语言:txt
AI代码解释
复制
7    col4
代码语言:txt
AI代码解释
复制
dtype: category
代码语言:txt
AI代码解释
复制
Categories (4, object): ['col1', 'col2', 'col3', 'col4']
代码语言:txt
AI代码解释
复制
pd.get\_dummies(data4)  # get\_dummies:将一维的分类数据转换成一个包含虚拟变量的DataFrame

分类方法

  • add_categories:添加新的分类到尾部
  • as_ordered:类别排序
  • as_unordered:使类别无序
  • remove_categories:去除类别,将被移除的值置为null
  • remove_unused_categories:去除所有未出现的类别
  • rename_categories:替换分类名,不改变分类的数量
  • reorder_categories:类进行排序
  • set_categories:用指定的一组新类替换原来的类,可以添加或者删除

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
JetBrains Rider mac最新版(跨平台.NET IDE集成开发)2022.2.2
Jetbrains Rider 是一个强大的跨平台.Net开发IDE,支持.NET,ASP.NET,.NET Core,Xamarin或Unity应用程序的开发,且与JavaScript,TypeScript,XAML,XML,HTML,CSS,SCSS,JSON和SQL等主流的语法兼容。
Mac小小
2022/08/23
6860
JetBrains Rider mac(跨平台.NET IDE集成开发)
JetbrAIns Rider mac版是一个强大的跨平台.Net开发IDE,可以与.NET Framework和.NET Core一起使用,也可以与Mono项目一起使用。因此,您可以使用rider 2021来创建类和库,Web应用程序,独立实用程序等。
Mac知识分享
2022/09/16
9380
Rider IDE免费了,Visualstudio正在没落,放弃VB.net是微软最大的错误决策
作为一名入行多年的游戏开发者,尤其是虚幻引擎的重度用户,我在IDE工具的选择上真的很难有VisualStudio以外的其他选项。不过自从 2017年JetBrains Rider问世以后,这种被VS垄断的局面正在逐渐被改变,身边也有越来越多的朋友推荐我去使用它。
VB6VB.NET爱好者
2025/01/07
1440
Rider IDE免费了,Visualstudio正在没落,放弃VB.net是微软最大的错误决策
JetBrains Rider mac/win(跨平台.NET IDE集成开发)最新版
Rider是应用在Mac上的一款IDE集成开发工具,Rider 2022支持多个窗口同时运行调试,并支持代码分析和修复,提供了上千种代码分析检查,对代码进行分析,可以打开,管理,构建和调试各种基于.NET Framework,Mono和.NET Core的解决方案,功能实用且强大,是程序员不可缺少的一款软件。
捧着风的少女
2022/11/10
6660
JetBrains Rider mac/win(跨平台.NET IDE集成开发)最新版
Rider 2022.3.3(跨平台.NET IDE集成开发)
Rider是一款由JetBrains开发的跨平台的集成开发环境(IDE),主要用于.NET和Unity应用程序的开发。以下是Rider的一些特点:
用户10121095
2023/04/21
7380
【全家桶程序设计】jetbrains全家桶下载-jetbrains全家桶最新版正式下载安装
JetBrains全家桶是一组针对程序员的开发工具集合,包括集成开发环境(IDE)、代码编辑器和其他相关工具。以下是JetBrains全家桶的主要软件:
用户10519159
2023/04/27
1.6K0
.NET开发者福音:JetBrains官方宣布 Rider 非商用免费开放!
JetBrains官方前段时间宣布重磅消息,其两款知名IDE应用WebStorm和Rider现已面向社区开放,允许用户免费用于非商业用途。此举旨在支持学习、开源项目开发、内容创作及业余开发等活动。
追逐时光者
2024/11/05
1960
.NET开发者福音:JetBrains官方宣布 Rider 非商用免费开放!
.NET周报【1月第3期 2023-01-20】
https://www.cnblogs.com/InCerry/p/building-a-self-contained-game-in-c-under-8-kilobytes-74c3cf60ea04.html
InCerry
2023/03/08
4.9K0
.NET周报【1月第3期 2023-01-20】
超好用的 Visual Studio 2022 扩展插件推荐:生产力必备工具
Visual Studio 2022作为微软推出的一款功能强大的IDE,业界称之为“宇宙第一IDE”。它以出色的性能、丰富的内置功能和对多种编程语言的支持,深受开发者喜爱。然而,随着项目复杂度的增加和开发需求的多样化,仅依靠IDE的内置功能往往不足以满足所有场景。这时,扩展插件成为了增强Visual Studio功能、提升开发效率的重要手段。
AI.NET 极客圈
2025/03/24
4210
超好用的 Visual Studio 2022 扩展插件推荐:生产力必备工具
JetBrains系列程序员编程工具全家桶下载安装教程+2023最新版激活安装
JetBrains是一家专注于开发智能化开发工具的软件公司,其开发的系列程序员编程工具被广泛应用于软件开发领域,涵盖了多个编程语言和开发环境。以下是JetBrains系列程序员编程工具全家桶的简介:
用户10519170
2023/04/21
2.5K0
jetbrains全家桶永久版v2023中文版附安装包安装教程 下载直装版
JetBrains全家桶永久版是一款集成开发环境(IDE)软件套装,包括多个常用的开发工具,例如IntelliJ IDEA、PyCharm、WebStorm、DataGrip等,适用于Java、Python、Web、数据库等多种开发领域。以下是JetBrains全家桶永久版v2023的主要功能和安装条件:
用户10519159
2023/04/26
1.3K0
.NET周报 【5月第1期 2023-05-06】
https://www.cnblogs.com/huangxincheng/p/17374315.html、
InCerry
2023/08/31
2840
.NET周报 【5月第1期 2023-05-06】
.NET周报【1月第4期 2023-01-28】
https://blog.lindexi.com/post/C-%E5%BE%88%E5%B0%91%E4%BA%BA%E7%9F%A5%E9%81%93%E7%9A%84%E7%A7%91%E6%8A%80.html
InCerry
2023/03/08
2.4K0
.NET周报【1月第4期 2023-01-28】
.NET周刊 【7月第2期 2023-07-02】
https://www.cnblogs.com/hejiale010426/p/17529511.html
InCerry
2023/08/31
1990
.NET周刊 【7月第2期 2023-07-02】
.NET Core跨平台的奥秘[上篇]:历史的枷锁
微软推出的第一个版本的.NET Framework是一个面向Windows桌面和服务器的基础框架,在此之后,为此微软根据设备自身的需求对.NET Framework进行裁剪,不断推出了针对具体设备类型的.NET Framework版本以实现针对移动、平板和嵌入式设备提供支持。除此之外,在Windows平台之外一致游荡着一只特立独行的猴子(Mono)。.NET平台看起来欣欣向荣,而实际上却日薄西山,就在这个时候微软走了一条唯一正确的道路,那就是基于跨平台理念重新设计的.NET Core,以及由此驱动地对整个.
蒋金楠
2018/01/15
1.3K0
.NET Core跨平台的奥秘[上篇]:历史的枷锁
.NET周报 【6月第4期 2023-06-25】
https://www.cnblogs.com/eventhorizon/p/17497359.html
InCerry
2023/08/31
4110
.NET周报 【6月第4期 2023-06-25】
.NET周刊【8月第3期 2024-08-18】
https://www.cnblogs.com/lindexi/p/18365261
InCerry
2024/11/23
2310
.NET周刊【8月第3期 2024-08-18】
.NET周报【11月第3期 2022-11-22】
https://mp.weixin.qq.com/s/4p89hhBPw6qv-0OB_T_TOg
InCerry
2023/03/08
3.1K0
.NET周报【11月第3期 2022-11-22】
.Net Core 会逆袭成为最受欢迎开发平台吗?
最新.Net Core 热词霸占了各个技术热搜,看来微软近年来发布的 .Net Core 还是成功了引起了大家的热烈讨论。如果您对微软熟悉,肯定是很了解.Net 平台,但是随着互联网的兴起,好像微软这个霸主的地位有所撼动。
葡萄城控件
2020/06/05
8940
.NET周刊【7月第4期 2023-07-23】
https://www.cnblogs.com/artech/p/string-memory-layout.html
InCerry
2023/08/31
2190
.NET周刊【7月第4期 2023-07-23】
推荐阅读
相关推荐
JetBrains Rider mac最新版(跨平台.NET IDE集成开发)2022.2.2
更多 >
LV.0
这个人很懒,什么都没有留下~
目录
  • 背景:统计重复值
  • 分类、字典编码
  • Categorical类型创建
    • 生成一个Categorical实例对象
    • 如何生成Categorical对象
  • Categorical对象计算
    • 统计计算
    • 分类后内存减少
  • 分类方法
    • 访问分类信息
    • 新增分类
    • 删除分类
    • 创建虚拟变量
    • 分类方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档