Python酷库之旅-第三方库Pandas(085)

news2024/11/15 10:46:30

目录

一、用法精讲

356、pandas.Series.str.isnumeric方法

356-1、语法

356-2、参数

356-3、功能

356-4、返回值

356-5、说明

356-6、用法

356-6-1、数据准备

356-6-2、代码示例

356-6-3、结果输出

357、pandas.Series.str.isdecimal方法

357-1、语法

357-2、参数

357-3、功能

357-4、返回值

357-5、说明

357-6、用法

357-6-1、数据准备

357-6-2、代码示例

357-6-3、结果输出

358、pandas.Series.str.get_dummies方法

358-1、语法

358-2、参数

358-3、功能

358-4、返回值

358-5、说明

358-6、用法

358-6-1、数据准备

358-6-2、代码示例

358-6-3、结果输出

359、pandas.Series.cat.categories属性

359-1、语法

359-2、参数

359-3、功能

359-4、返回值

359-5、说明

359-6、用法

359-6-1、数据准备

359-6-2、代码示例

359-6-3、结果输出

360、pandas.Series.cat.ordered属性

360-1、语法

360-2、参数

360-3、功能

360-4、返回值

360-5、说明

360-6、用法

360-6-1、数据准备

360-6-2、代码示例

360-6-3、结果输出

二、推荐阅读

1、Python筑基之旅

2、Python函数之旅

3、Python算法之旅

4、Python魔法之旅

5、博客个人主页

一、用法精讲

356、pandas.Series.str.isnumeric方法
356-1、语法
# 356、pandas.Series.str.isnumeric方法
pandas.Series.str.isnumeric()
Check whether all characters in each string are numeric.

This is equivalent to running the Python string method str.isnumeric() for each element of the Series/Index. If a string has zero characters, False is returned for that check.

Returns:
Series or Index of bool
Series or Index of boolean values with the same length as the original Series/Index.
356-2、参数

        无

356-3、功能

        用于检查字符串元素是否只包含数字字符,该方法适用于包含数字的字符串,返回布尔类型的 Series。

356-4、返回值

        返回一个布尔类型的Series,其中的每个元素表示对应字符串是否仅由数字构成。

356-5、说明

        无

356-6、用法
356-6-1、数据准备
356-6-2、代码示例
# 356、pandas.Series.str.isnumeric方法
import pandas as pd
# 创建一个示例Series
data = pd.Series(['123', '456.78', 'abc', '123abc', ' ', ''])
# 使用isnumeric()方法
result = data.str.isnumeric()
# 打印结果
print(result)
356-6-3、结果输出
# 356、pandas.Series.str.isnumeric方法
# 0     True
# 1    False
# 2    False
# 3    False
# 4    False
# 5    False
# dtype: bool
357、pandas.Series.str.isdecimal方法
357-1、语法
# 357、pandas.Series.str.isdecimal方法
pandas.Series.str.isdecimal()
Check whether all characters in each string are decimal.

This is equivalent to running the Python string method str.isdecimal() for each element of the Series/Index. If a string has zero characters, False is returned for that check.

Returns:
Series or Index of bool
Series or Index of boolean values with the same length as the original Series/Index.
357-2、参数

        无

357-3、功能

        用于检查字符串元素是否只包含十进制数字字符,与isnumeric()方法相比,isdecimal()更具局限性,它只适用于表示十进制数的字符,不包括其他数字类型(如分数或指数表示法)。

357-4、返回值

        返回一个布尔类型的Series,其中的每个元素表示对应的字符串是否仅由十进制数字构成。

357-5、说明

        无

357-6、用法
357-6-1、数据准备
357-6-2、代码示例
# 357、pandas.Series.str.isdecimal方法
import pandas as pd
# 创建一个示例Series
data = pd.Series(['123', '456.78', 'abc', '123abc', ' ', '12¾', ''])
# 使用isdecimal()方法
result = data.str.isdecimal()
# 打印结果
print(result)
357-6-3、结果输出
# 357、pandas.Series.str.isdecimal方法
# 0     True
# 1    False
# 2    False
# 3    False
# 4    False
# 5    False
# 6    False
# dtype: bool
358、pandas.Series.str.get_dummies方法
358-1、语法
# 358、pandas.Series.str.get_dummies方法
pandas.Series.str.get_dummies(sep='|')
Return DataFrame of dummy/indicator variables for Series.

Each string in Series is split by sep and returned as a DataFrame of dummy/indicator variables.

Parameters:
sep
str, default “|”
String to split on.

Returns:
DataFrame
Dummy variables corresponding to values of the Series.
358-2、参数

358-2-1、sep(可选,默认值为'|')用于分隔字符串中标签的字符(字符串)。

358-3、功能

        用于文本数据的特征工程,特别是在处理包含多个类别标签的字符串字段时。例如,如果您有一个包含多个标签的字符串Series,您可以使用该方法将其转换为多个独立的列,从而更方便地进行后续的数据分析和建模。

358-4、返回值

        返回一个DataFrame,其中每列代表一个唯一的标签,值为0或1,表示对应行中标签的存在与否。

358-5、说明

        使用场景:

358-5-1、数据预处理:在处理原始数据集时,尤其是当您的数据包含多种类标签的组合形式(如一列中包含多个用分隔符连接的类别标签)时,该方法非常有用。它可以将这些组合标签拆分为更容易处理的格式。

358-5-2、特征工程:在机器学习项目中,特征工程是模型的关键步骤,使用该方法可以将分类变量转换为数值型特征,便于算法进行处理,这对于需要对类别变量进行编码的模型(如逻辑回归、支持向量机等)尤为重要。

358-5-3、分类文本数据处理:当处理自然语言处理(NLP)任务时,文本数据可能会包含组合标签。例如,社交媒体帖子、评论或产品标签。这些文本数据往往需要被转为数值特征才能用于训练模型。

358-5-4、类别属性分析:如果您需要分析类目属性的频次或分布,通过将它们拆分成独立的二进制特征,可以更直观地获得每个类别的出现情况,便于后续的数据分析。

358-5-5、数据可视化:在进行数据可视化时,将类别变量转换为数值型特征能够简化图表的创建,方便更好地理解数据分布和关系。

358-6、用法
358-6-1、数据准备
358-6-2、代码示例
# 358、pandas.Series.str.get_dummies方法
# 358-1、数据预处理
import pandas as pd
# 创建一个包含多类别标签的示例数据
data = {
    'Product': ['A|B|C', 'A|C', 'B|D', 'A|B|D', 'C']
}
df = pd.DataFrame(data)
# 使用get_dummies方法进行预处理
dummies = df['Product'].str.get_dummies(sep='|')
print(dummies, end='\n\n')

# 358-2、特征工程
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
# 示例数据
data = {
    'Features': ['red|small', 'blue|medium', 'green|large', 'red|large'],
    'Target': [0, 1, 1, 0]
}
df = pd.DataFrame(data)
# 特征转换
X = df['Features'].str.get_dummies(sep='|')
y = df['Target']
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 训练模型
model = LogisticRegression()
model.fit(X_train, y_train)
# 预测
predictions = model.predict(X_test)
print("Predictions:", predictions, end='\n\n')

# 358-3、分类文本数据处理
import pandas as pd
# 创建示例数据
data = {
    'Tags': ['sports|music', 'food|travel', 'music|travel', 'sports|food']
}
df = pd.DataFrame(data)
# 处理多标签分类数据
dummies = df['Tags'].str.get_dummies(sep='|')
print(dummies, end='\n\n')

# 358-4、数据可视化
import pandas as pd
import matplotlib.pyplot as plt
# 示例数据
data = {
    'Categories': ['cat|dog', 'dog|mouse', 'cat|bird', 'bird|cat'],
}
df = pd.DataFrame(data)
# 转换为哑变量
dummies = df['Categories'].str.get_dummies(sep='|')
# 可视化
dummies.sum().plot(kind='bar', color='purple')
plt.title('Category Counts')
plt.xlabel('Categories')
plt.xticks(rotation=25)
plt.ylabel('Counts')
plt.show()
358-6-3、结果输出
# 358、pandas.Series.str.get_dummies方法
# 358-1、数据预处理
#    A  B  C  D
# 0  1  1  1  0
# 1  1  0  1  0
# 2  0  1  0  1
# 3  1  1  0  1
# 4  0  0  1  0

# 358-2、特征工程
# Predictions: [0]

# 358-3、分类文本数据处理
#    food  music  sports  travel
# 0     0      1       1       0
# 1     1      0       0       1
# 2     0      1       0       1
# 3     1      0       1       0

# 358-4、数据可视化
# 见图1

图1:

 

359、pandas.Series.cat.categories属性
359-1、语法
# 359、pandas.Series.cat.categories属性
pandas.Series.cat.categories
The categories of this categorical.

Setting assigns new values to each category (effectively a rename of each individual category).

The assigned value has to be a list-like object. All items must be unique and the number of items in the new categories must be the same as the number of items in the old categories.

Raises:
ValueError
If the new categories do not validate as categories or if the number of new categories is unequal the number of old categories.
359-2、参数

        无

359-3、功能

        用于访问分类数据的所有类别标签,它适用于pandas中的数据类型为Categorical的Series。

359-4、返回值

        返回一个Index对象,包含与分类数据相关联的类别标签,这些标签可以是任何数据类型,例如字符串、整数或其他可哈希的类型。

359-5、说明

        无

359-6、用法
359-6-1、数据准备
359-6-2、代码示例
# 359、pandas.Series.cat.categories属性
# 359-1、创建分类数据并访问类别
import pandas as pd
# 创建包含分类数据的Series
data = pd.Series(['apple', 'orange', 'banana', 'apple', 'banana'], dtype='category')
# 访问类别
categories = data.cat.categories
print("Categories:", categories, end='\n\n')

# 359-2、使用cat.categories过滤数据
import pandas as pd
# 创建分类数据
data = pd.Series(['apple', 'orange', 'banana', 'apple'], dtype='category')
# 只保留指定类别的数据
filtered_data = data[data.isin(data.cat.categories[:2])]
print("Filtered Data:")
print(filtered_data)
359-6-3、结果输出
# 359、pandas.Series.cat.categories属性
# 359-1、创建分类数据并访问类别
# Categories: Index(['apple', 'banana', 'orange'], dtype='object')

# 359-2、使用cat.categories过滤数据
# Filtered Data:
# 0     apple
# 2    banana
# 3     apple
# dtype: category
# Categories (3, object): ['apple', 'banana', 'orange']
360、pandas.Series.cat.ordered属性
360-1、语法
# 360、pandas.Series.cat.ordered属性
pandas.Series.cat.ordered
Whether the categories have an ordered relationship.
360-2、参数

        无

360-3、功能

        用于检查分类数据是否是有序的,该属性适用于数据类型为Categorical的Series,尤其是在处理有序分类数据时非常有用。

360-4、返回值

        返回True表示该分类数据是有序的,返回False则表示是无序的。

360-5、说明

        无

360-6、用法
360-6-1、数据准备
360-6-2、代码示例
# 360、pandas.Series.cat.ordered属性
import pandas as pd
# 创建有序分类数据的Series
ordered_data = pd.Series(['low', 'medium', 'high'], dtype=pd.CategoricalDtype(categories=['low', 'medium', 'high'], ordered=True))
# 创建无序分类数据的Series
unordered_data = pd.Series(['apple', 'banana', 'orange'], dtype='category')
# 检查有序性
print("Is ordered data ordered?", ordered_data.cat.ordered)  
print("Is unordered data ordered?", unordered_data.cat.ordered)  
360-6-3、结果输出
# 360、pandas.Series.cat.ordered属性
# Is ordered data ordered? True
# Is unordered data ordered? False

二、推荐阅读

1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2047255.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RabbitMQ的核心概念

RabbitMQ是一个消息中间件,也是一个生产者消费者模型,负责接收,存储和转发消息。 核心概念 Producer 生产者,是RabbitMQ Server的客户端,向RabbitMQ发送消息。 Consumer 消费者,是RabbitMQ Server的客…

Ps:首选项 - 单位与标尺

Ps菜单:编辑/首选项 Edit/Preferences 快捷键:Ctrl K Photoshop 首选项中的“单位与标尺” Units & Rulers选项卡允许用户根据工作需求定制 Photoshop 的测量单位和标尺显示方式。这对于保持工作的一致性和精确性,尤其是在跨设备或跨平台…

mybatis plus 查询部分源码分析,typehandler怎么实现的?FastjsonTypehandler 查询问题怎么解决?

我们在使用mysql的json字段的时候有时为了方便,最好是查询的时候直接反序列化为对象比较好,这时候我们就用到了typehandler这个属性 首先mybatis plus 会初始化一系列的 typeHandler,并且扫描用户设置的typeHandler路径(mybatis-plus: type-…

Flutter-->AAPT: error: resource android:attr/lStar not found.

更新Flutter 3.24.0之后, 打包出现AAPT: error: resource android:attr/lStar not found.问题, 这里出一个我的解决方案. 更新Flutter 3.24.0之后, Android编译sdk需要使用34, 否则就会出现很多问题… 由于很多库都不可能及时更新适配到Android sdk 34, 所以可以等pub get将子…

硅谷物理服务器有哪些关键优势和特点

硅谷的物理服务器设施全球知名,为各类企业提供了卓越的IT基础设施支持。下面将逐一探讨硅谷物理服务器的关键优势和特点,rak小编为您整理发布硅谷物理服务器有哪些关键优势和特点。 1. 卓越的性能 高性能计算能力:硅谷的物理服务器采用最新一…

Authentik:开源身份提供商

Authentik 是一个开源身份提供商,旨在实现最大的灵活性和适应性。 它可轻松集成到现有环境中并支持新协议。 它是一个全面的解决方案,用于在您的应用程序中实现注册、帐户恢复等功能,无需手动管理这些任务。 Authentik 可以无缝集成到现有…

arcgis打开不同tif格式编码的栅格数据

1、如下图,将文件包包解压打开,看到【2020年GDP数据】。 2、点击进入【2020年GDP数据】文件夹如下图所示。接着去打开arcgis软件。 3、按照步骤来,在arcgis【目录】里面添加【文件夹】然后选中你刚刚解压的【GDP文件夹数据】,最…

21 注意力机制—自注意力

目录 1.自注意力和位置编码跟CNN,RNN对比位置编码(position encoding)1、和 CNN / RNN 不同,自注意力并没有记录位置信息2、为了使用序列的顺序信息,通过在输入表示中添加位置编码将位置信息注入到输入里3、P 的元素具体计算如下:位置编码矩阵绝对位置信息相对位置信息总…

Linux运维篇-yum命令报错 /lib64/libcurl.so.4相关

目录 项目场景:问题描述原因分析:解决方案: 项目场景: centos7,8,同样也适用openEuer,Kylin等redhat系的国产化操作系统 问题描述 在使用yum命令时报错: 主要报错信息为&#xff1…

诈骗未成功是否构成犯罪?

诈骗未成功不一定构成犯罪。在刑法上,构成诈骗罪需要满足特定的构成要件,包括有非法占有的目的、实施了虚构事实或隐瞒真相的行为、对方因此陷入错误认识并处分财产、行为人或第三方取得财产、被害人遭受财产损失。如果诈骗行为未能成功,即被…

[C#]基于winform结合photocartoon算法实现人物卡通化源码实现

【官方框架】 https://github.com/minivision-ai/photo2cartoon 简介 人像卡通风格渲染的目标是,在保持原图像ID信息和纹理细节的同时,将真实照片转换为卡通风格的非真实感图像。我们的思路是,从大量照片/卡通数据中习得照片到卡通画的映射…

HDRP管线下的开放世界游戏与跨平台优化,《仙剑世界》万字分享

《仙剑世界》作为仙剑 IP 系列的最新⻓篇⼒作,从故事和剧情上延续了仙剑的精髓。在仙剑 33 年的世界观下,《仙剑世界》打造出了⼀个由浪漫唯美的江南全景、磅礴恢弘的蜀⼭、神秘苗疆等区域构成的 384 平⽅公⾥完整的⽆缝开放⼤世界。以东⽅题材为起点&am…

Java入门-接口:JDK8开始接口新增方法,接口的多继承,接口注意事项

(一)新增接口注意事项: 接口A: package interface_jdk8;public interface A {//1.新增默认方法:必须使用defalut修饰,默认会被public修饰//注意:这种默认方法可以带方法体/*实例方法&#xff1…

openssh升级到9.8

升级步骤 1、查看版本 [rootlocalhost openssh-8.8p1]# ssh -V OpenSSH_8.8p1, OpenSSL 1.0.2k-fips 26 Jan 20172、下载安装包 cd /usr/local/src wget https://www.zlib.net/zlib-1.3.1.tar.gz wget https://www.openssl.org/source/openssl-3.2.1.tar.gz wget https://cdn.…

在小程序添加公司官网访问

在小程序添加公司官网访问 有时候由于业务需要,在小程序上加入自己公司官网的访问地址,点击后跳转到官网。 本文详细讲解整个过程。 一、小程序管理台配置 进入小程序管理台 开发管理-》业务域名 加入你的公司官网域名,具体如下图所示&…

2024新型数字政府综合解决方案(八)

新型数字政府综合解决方案结合人工智能、大数据、区块链与云计算等先进技术,旨在构建一个智能、高效、透明的政务服务体系,通过全面整合各部门的信息资源,实现数据的实时共享与高效管理,从而大幅提升政府应对复杂社会问题的能力&a…

LookupError: Resource averaged_perceptron_tagger not found.解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

如何选择较为安全的第三方依赖版本?

如何选择较为安全的第三方依赖版本? 本文概览1.1 前言1.1.1 学会看第三方开源库的版本发布说明1.1.2 尽可能使用 starer 匹配的第三方开源库1.1.3 参考Maven 中心仓库的安全警告信息 本文概览 本篇博文分享如何选择较为安全的第三方依赖版本的方法。 1.1 前言 众…

学习Flutter时需要了解的背景知识

关键词:Flutter、移动UI框架、跨平台、Widget、高效开发、自定义Widget、热重载、性能优化 摘要:Flutter是Google推出的开源移动UI框架,旨在支持高效构建高质量的原生应用,同时兼容iOS和Android平台。它通过热重载技术实现高效开发…

【机器人学】7-1.六自由度机器人自干涉检测-总体算法介绍

目录 前言 机器人自干涉检测方法 一 机械臂各连杆等效 二 确定一个圆柱体 三 圆柱体的空间变换 四 空间几何分析 五 关键点总结 前言 机器人在运行过程中,可能发生碰撞,碰撞物可以是外界物体,也可以是机器人自己的关节间发生碰撞…