首页 > Python资料 博客日记
Python酷库之旅-第三方库Pandas(085)
2024-09-13 09:00:04Python资料围观35次
目录
356、pandas.Series.str.isnumeric方法
357、pandas.Series.str.isdecimal方法
358、pandas.Series.str.get_dummies方法
359、pandas.Series.cat.categories属性
360、pandas.Series.cat.ordered属性
一、用法精讲
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、博客个人主页
标签:
上一篇:Java之线程篇三
下一篇:manim边学边做--通用多边形
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based proj