Pandas的分类数据处理 category (15)

pandas从0.15版开始提供分类数据类型,用于表示统计学里有限且唯一性数据集,例如描述个人信息的性别一般就男和女两个数据常用'm'和'f'来描述,有时也能对应编码映射为0和1。血型A、B、O和AB型等选择可以映射为0、1、2、3这四个数字分别代表各个血型。pandas里直接就有categorical类型,可以有效地对数据进行分组进行相应的汇总统计工作。

当DataFrame的某列(字段)上的数据值是都是某有限个数值的集合里的值的时候,例如:性别就男和女,有限且唯一。这列可以采用Categorical Data类型来存储、统计。

pandas的Categorical Data类型灵感来源于Data wareHorsing数据仓库里的维度表设计理念,即某列数据存储的不是数据本身,而是该数据对应的编码(有称为分类、字典编码) 这些编码比数据本身存储依赖的空间小,但能基于编码统计汇总的速度要比数据本身的存储、统计速度要快。

15.1 如何理解Categorical Data?

下面看一张某水果超市的供货商表(表1):

供货商 水果 价格
1 apple 5.20
2 pearl 3.50
3 orange 7.30
5 apple 5.00
6 orange 7.50
7 orange 7.30
9 apple 5.20
4 pearl 3.70
8 orange 7.30

第2列是各个水果供应商的能供应的水果类型,目前市场也就apple、pearl、orange三种水果可以买到,对于一个大超市而言可能这个表很长、有很多的水果供应商,假设有1亿条数据,那么数据存储所需空间主要浪费在水果名字上了,其他字段都是数值型的数据,而水果这一列是字符串型的,很占空间,如何能降低这张大表的存储空间浪费呢? 设计一个辅助的水果编码表(表2):

</
编码 水果
0 apple
1 pearl
pandas是一个强大的数据处理库,它提供了丰富的功能和工具,用于处理和分析数据。通过pandas,我们可以轻松地导入、清洗、转换和分析数据。 在使用pandas进行数据处理之前,我们需要先导入pandas库和numpy库。可以使用以下代码导入它们: ```python import numpy as np import pandas as pd ``` 导入数据表的方法有多种。一种常见的方法是使用pandas的`read_csv()`函数从CSV文件中导入数据。另一种方法是通过直接写入数据来生成数据表。可以使用pandas的`DataFrame`函数来生成数据表。例如,可以使用以下代码生成一个包含6行数据数据表: ```python df = pd.DataFrame({"id":\[1001,1002,1003,1004,1005,1006\], "date":pd.date_range('20130102', periods=6), "city":\['Beijing ', 'SH', ' guangzhou ', 'Shenzhen', 'shanghai', 'BEIJING '\], "age":\[23,44,54,32,34,32\], "category":\['100-A','100-B','110-A','110-C','210-A','130-F'\], "price":\[1200,np.nan,2133,5433,np.nan,4432\]}, columns =\['id','date','city','category','age','price'\]) ``` 这个数据表包含了id、date、city、category、age和price这些字段,每个字段有相应的数据。 通过pandas,我们可以对数据表进行各种操作,例如筛选数据、排序数据、计算统计指标等。pandas还提供了灵活的数据清洗功能,可以处理缺失值、重复值、异常值等。 总之,pandas是一个功能强大的数据处理库,可以帮助我们高效地处理和分析数据。 #### 引用[.reference_title] - *1* *2* *3* [使用pandas进行数据处理](https://blog.csdn.net/xuexishiwochengz/article/details/128942680)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值