当前位置: 首页 > news >正文

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

目录

一、用法精讲

321、pandas.Series.str.len方法

321-1、语法

321-2、参数

321-3、功能

321-4、返回值

321-5、说明

321-6、用法

321-6-1、数据准备

321-6-2、代码示例

321-6-3、结果输出

322、pandas.Series.str.ljust方法

322-1、语法

322-2、参数

322-3、功能

322-4、返回值

322-5、说明

322-6、用法

322-6-1、数据准备

322-6-2、代码示例

322-6-3、结果输出

323、pandas.Series.str.lower方法

323-1、语法

323-2、参数

323-3、功能

323-4、返回值

323-5、说明

323-6、用法

323-6-1、数据准备

323-6-2、代码示例

323-6-3、结果输出

324、pandas.Series.str.lstrip方法

324-1、语法

324-2、参数

324-3、功能

324-4、返回值

324-5、说明

324-6、用法

324-6-1、数据准备

324-6-2、代码示例

324-6-3、结果输出

325、pandas.Series.str.match方法

325-1、语法

325-2、参数

325-3、功能

325-4、返回值

325-5、说明

325-6、用法

325-6-1、数据准备

325-6-2、代码示例

325-6-3、结果输出

一、用法精讲

321、pandas.Series.str.len方法
321-1、语法
# 321、pandas.Series.str.len方法
pandas.Series.str.len()
Compute the length of each element in the Series/Index.The element may be a sequence (such as a string, tuple or list) or a collection (such as a dictionary).Returns:
Series or Index of int
A Series or Index of integer values indicating the length of each element in the Series or Index.
321-2、参数

        无

321-3、功能

        用于pandas.Series对象中的字符串数据,返回每个字符串的字符数,如果某个元素不是字符串类型,如为NaN或其他类型,将返回NaN。

321-4、返回值

        返回一个pandas.Series对象,其中包含每个元素的长度,如果原始元素为NaN或非字符串类型,则相应的位置将会是NaN。

321-5、说明

        使用场景:

321-5-1、数据清理: 在对数据进行清理和预处理时,可能需要检查字符串的长度,以便识别异常值或不符合特定规则的数据。例如,过滤出长度小于某个值的字符串。

321-5-2、特征工程: 在机器学习中,可以将字符串长度作为特征之一,与其他特征一起用于模型训练。例如,文本分类任务中,文本的长度可能与类别有一定的关联。

321-5-3、文本分析: 在进行文本分析时,字符串长度可能提供有用的信息。例如,分析评论或反馈的长度,评估用户的参与度。

321-5-4、数据完整性检查: 通过检查字符串长度,可以确保数据的完整性。例如,某些字段在数据库中要求有特定的字符长度,通过长度检查可以发现缺失或异常的数据。

321-5-5、聚合和统计: 有时需要对字符串长度进行统计,比如计算平均长度、最大长度或最小长度等,以获得数据集的整体特性。

321-5-6、可视化准备: 当准备数据进行可视化时,字符串长度可以作为一个维度来探索数据分布,帮助选择合适的图表展示方式。

321-6、用法
321-6-1、数据准备
321-6-2、代码示例
# 321、pandas.Series.str.len方法
# 321-1、数据清理
import pandas as pd
# 创建示例数据
data = {'text': ['hello', 'world', 'Pandas', '', 'Python programming', 'AI assistant']}
df = pd.DataFrame(data)
# 过滤出长度小于等于2的字符串
filtered_df = df[df['text'].str.len() <= 8]
print("过滤后的数据:")
print(filtered_df, end='\n\n')# 321-2、特征工程
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
# 创建示例数据
data = {'text': ['short', 'a bit longer', 'this is a longer text', 'tiny', 'lengthy sentence'],'label': [0, 1, 1, 0, 1]
}
df = pd.DataFrame(data)
# 提取字符串长度作为特征
df['text_length'] = df['text'].str.len()
# 划分数据集
X = df[['text_length']]
y = df['label']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 训练模型
model = RandomForestClassifier()
model.fit(X_train, y_train)
# 输出测试集预测结果
predictions = model.predict(X_test)
print("预测结果:", predictions, end='\n\n')# 321-3、文本分析
import pandas as pd
# 创建示例评论数据
comments = {'viewer': ['User1', 'User2', 'User3', 'User4'],'comment': ['Great movie!', 'Very boring.', 'I loved it!', 'Not my taste at all.']
}
df = pd.DataFrame(comments)
# 计算每个评论的长度
df['comment_length'] = df['comment'].str.len()
print("评论长度分析:")
print(df[['viewer', 'comment', 'comment_length']], end='\n\n')# 321-4、数据完整性检查
import pandas as pd
# 创建示例数据
data = {'username': ['myelsa', 'bob', 'charlie', 'david', 'eve', None]}
df = pd.DataFrame(data)
# 检查用户名长度,找到空值或长度为0的用户名
invalid_usernames = df[df['username'].isnull() | (df['username'].str.len() == 0)]
print("无效用户名:")
print(invalid_usernames, end='\n\n')# 321-5、聚合和统计
import pandas as pd
# 创建示例数据
data = {'text': ['apple', 'banana', 'kiwi', 'blueberry', 'mango']}
df = pd.DataFrame(data)
# 计算字符串长度及其统计信息
lengths = df['text'].str.len()
print("字符串长度统计:")
print("最小长度:", lengths.min())
print("最大长度:", lengths.max())
print("平均长度:", lengths.mean(), end='\n\n')# 321-6、可视化准备
import pandas as pd
import matplotlib.pyplot as plt
# 创建示例数据
data = {'text': ['apple', 'banana', 'kiwi', 'blueberry', 'mango']}
df = pd.DataFrame(data)
# 计算字符串长度
df['text_length'] = df['text'].str.len()
counts, bins, patches = plt.hist(df['text_length'], bins=range(1, 11), align='left', edgecolor='black', color = 'red')
# 添加数据标签
for count, x in zip(counts, bins[:-1]):plt.text(x + 0.2, count, str(int(count)), ha='center', va='bottom', fontweight = 'bold', color = 'purple')  # 显示频率标签
plt.title('String Length Distribution')
plt.xlabel('Length of String')
plt.ylabel('Frequency')
plt.xticks(range(1, 10))
plt.grid(axis='y', alpha=0.75)
plt.show()
321-6-3、结果输出
# 321、pandas.Series.str.len方法
# 321-1、数据清理
# 过滤后的数据:
#      text
# 0   hello
# 1   world
# 2  Pandas
# 3# 321-2、特征工程
# 预测结果: [1]# 321-3、文本分析
# 评论长度分析:
#   viewer               comment  comment_length
# 0  User1          Great movie!              12
# 1  User2          Very boring.              12
# 2  User3           I loved it!              11
# 3  User4  Not my taste at all.              20# 321-4、数据完整性检查
# 无效用户名:
#   username
# 5     None# 321-5、聚合和统计
# 字符串长度统计:
# 最小长度: 4
# 最大长度: 9
# 平均长度: 5.8# 321-6、可视化准备
# 见图1

图1:

 

322、pandas.Series.str.ljust方法
322-1、语法
# 322、pandas.Series.str.ljust方法
pandas.Series.str.ljust(width, fillchar=' ')
Pad right side of strings in the Series/Index.Equivalent to str.ljust().Parameters:
width
int
Minimum width of resulting string; additional characters will be filled with fillchar.fillchar
str
Additional character for filling, default is whitespace.Returns:
Series/Index of objects.
322-2、参数

322-2-1、width(必须)整数,指定输出字符串的最小宽度,如果原字符串的长度小于这个宽度,则会在字符串的右侧填充fillchar以达到指定宽度;如果原字符串的长度大于或等于宽度,则原字符串不变。

322-2-2、fillchar(可选,默认值为' ')字符串,指定用来填充的字符。如果指定的字符长度不为1,则会引发错误。

322-3、功能

        用于将字符串左对齐,它为每个字符串提供了一种方式,以确保它们的长度一致,方便在表格或其他显示情况下进行排列,这在处理文本数据时尤其有用。

322-4、返回值

        返回一个Series,其中每个字符串都经过格式化处理,如果Series中的某些值为NaN,则这些值将保持不变。

322-5、说明

        使用场景:

322-5-1、文本格式化:在生成报告或输出数据时,需要确保字符串的宽度一致,以提升可读性,通过左对齐和填充,可以使数据呈现得更加整齐。

322-5-2、对齐数据:当需要将字符串数据放入表格或屏幕输出时,对齐数据有助于更好地进行视觉比较。例如,在命令行界面中,由于空格未对齐可能造成数据误读,使用ljust()方法可以确保每列数据按相同宽度排列。

322-5-3、生成对齐的文本数据:在创建文本文件(如CSV或TXT)时,确保每个字段的长度一致有助于后续处理或解析,这在处理日志文件或生成可人读的输出时尤其重要。

322-5-4、数据清洗和准备:在数据预处理过程中,可能需要将不同长度的字符串标准化到一定的宽度,以便在后续分析中避免误差。

322-5-5、用户输入处理:当需要接收用户的输入并标准化其格式时,可以使用此方法将输入的字符串调整到特定格式。

322-5-6、图形用户界面的数据展示:在开发图形用户界面时,左对齐字符串有助于创建更加一致和美观的用户界面。

322-6、用法
322-6-1、数据准备
322-6-2、代码示例
# 322、pandas.Series.str.ljust方法
# 322-1、文本格式化
import pandas as pd
data = pd.Series(['apple', 'banana', 'cherry'])
formatted_data = data.str.ljust(10,'*')  # 将每个字符串左对齐填充到10个字符宽度
print(formatted_data, end='\n\n')# 322-2、对齐数据
import pandas as pd
data = pd.Series(['Name', 'Myelsa', 'Bob', 'Charlie'])
width = 10
aligned_data = data.str.ljust(width)
print(aligned_data, end='\n\n')# 322-3、生成对齐的文本数据(写入文件)
import pandas as pd
data = pd.Series(['ID', 'Name', 'Age'])
width = 20
# 创建并写入文件
with open('output.txt', 'w') as f:for item in data.str.ljust(width):f.write(item + '\n')
print("文件'output.txt'已创建,内容已左对齐!", end='\n\n')# 322-4、数据清洗和准备
import pandas as pd
data = pd.Series(['apple', 'kiwi', 'banana', None, 'orange'])
# 左对齐并填充空值,设置占位符为 '-'
cleaned_data = data.str.ljust(10, '-')
print(cleaned_data, end='\n\n')# 322-5、用户输入处理
import pandas as pd
# 模拟用户输入
user_inputs = pd.Series(['User1', 'User2', 'User3'])
# 左对齐,确保每个用户名都有相同的宽度
aligned_inputs = user_inputs.str.ljust(15)
print("对齐后的用户输入:")
print(aligned_inputs, end='\n\n')# 322-6、图形用户界面的数据展示(示例框架)
import tkinter as tk
import pandas as pd
def display_data(data):width = 20formatted_data = data.str.ljust(width)for item in formatted_data:label = tk.Label(root, text=item)label.pack()
if __name__ == "__main__":root = tk.Tk()root.title("对齐数据展示")data = pd.Series(['Item1', 'Item2', 'Item3'])display_data(data)root.mainloop()
322-6-3、结果输出
# 322、pandas.Series.str.ljust方法
# 322-1、文本格式化
# 0    apple*****
# 1    banana****
# 2    cherry****
# dtype: object# 322-2、对齐数据
# 0    Name
# 1    Myelsa
# 2    Bob
# 3    Charlie
# dtype: object# 322-3、生成对齐的文本数据(写入文件)
# 文件'output.txt'已创建,内容已左对齐!# 322-4、数据清洗和准备
# 0    apple-----
# 1    kiwi------
# 2    banana----
# 3          None
# 4    orange----
# dtype: object# 322-5、用户输入处理
# 对齐后的用户输入:
# 0    User1
# 1    User2
# 2    User3
# dtype: object# 322-6、图形用户界面的数据展示(示例框架)
# 见图2

图2:

 

323、pandas.Series.str.lower方法
323-1、语法
# 323、pandas.Series.str.lower方法
pandas.Series.str.lower()
Convert strings in the Series/Index to lowercase.Equivalent to str.lower().Returns:
Series or Index of object.
323-2、参数

        无

323-3、功能

        遍历Series中的每个字符串,并将其中的所有大写字母转换为小写字母。例如,'Hello'将被转换为'hello'。

323-4、返回值

        返回一个新的Series,其中包含了转换为小写字母的字符串,与原系列的索引相同。

323-5、说明

        使用场景:

323-5-1、数据清洗:在数据分析之前,通常需要对文本数据进行清洗,以确保一致性,使用该方法可以将所有字符串转换为小写,避免因为大小写不一致导致的问题。

323-5-2、文本比较:在进行字符串比较时,大小写可能会影响结果,将字符串统一为小写后,可以可靠地进行相等性比较,比如在查找或过滤数据时。

323-5-3、数据标准化:在数据合并、联接或去重时,确保字符串的大小写一致性是很重要的,使用该方法可以帮助实现标准化,确保更准确的结果。

323-5-4、自然语言处理:在自然语言处理(NLP)的任务中,将文本转换为小写是一个常见的预处理步骤,提高模型的表现并减少特征空间的复杂性。

323-5-5、用户输入处理:在处理用户输入时,尤其是搜索功能,转换为小写可以确保用户输入和数据库中的数据比较时不会因为大小写不同而漏掉匹配项。

323-5-6、日志分析:在分析日志文件时,通常需要对日志信息进行统一处理,以确保分析结果的准确性和可读性。

323-6、用法
323-6-1、数据准备
323-6-2、代码示例
# 323、pandas.Series.str.lower方法
import pandas as pd
# 创建一个包含字符串的Series
data = pd.Series(['Hello', 'World', 'Python', 'PANDAS'])
# 使用str.lower()方法
lowercase_data = data.str.lower()
print(lowercase_data)
323-6-3、结果输出
# 323、pandas.Series.str.lower方法
# 0     hello
# 1     world
# 2    python
# 3    pandas
# dtype: object
324、pandas.Series.str.lstrip方法
324-1、语法
# 324、pandas.Series.str.lstrip方法
pandas.Series.str.lstrip(to_strip=None)
Remove leading characters.Strip whitespaces (including newlines) or a set of specified characters from each string in the Series/Index from left side. Replaces any non-strings in Series with NaNs. Equivalent to str.lstrip().Parameters:
to_strip
str or None, default None
Specifying the set of characters to be removed. All combinations of this set of characters will be stripped. If None then whitespaces are removed.Returns:
Series or Index of object.
324-2、参数

324-2-1、to_strip(可选,默认值为None)一个字符串,表示希望从每个字符串的左侧去除的字符集合,如果未提供该参数,则默认去除字符串左侧的空白字符(包括空格、制表符、换行符等)。

324-3、功能

        从每个字符串的开头移除指定的字符。它常用于清理数据,确保字符串格式的一致性。比如,如果某些字符串的左侧有多余的空格或特定的字符,可以使用此方法将其移除。

324-4、返回值

        返回一个新的Series对象,包含经过左侧字符去除处理后的所有字符串,原始数据不会被修改。

324-5、说明

        无

324-6、用法
324-6-1、数据准备
324-6-2、代码示例
# 324、pandas.Series.str.lstrip方法
import pandas as pd
# 创建一个字符串序列
s = pd.Series(['   apple', ' banana', 'cherry   ', '   date'])
# 使用lstrip去除左侧的空白字符
cleaned_s = s.str.lstrip()
print(cleaned_s)
324-6-3、结果输出
# 324、pandas.Series.str.lstrip方法
# 0        apple
# 1       banana
# 2    cherry   
# 3         date
# dtype: object
325、pandas.Series.str.match方法
325-1、语法
# 325、pandas.Series.str.match方法
pandas.Series.str.match(pat, case=True, flags=0, na=None)
Determine if each string starts with a match of a regular expression.Parameters:
pat
str
Character sequence.case
bool, default True
If True, case sensitive.flags
int, default 0 (no flags)
Regex module flags, e.g. re.IGNORECASE.na
scalar, optional
Fill value for missing values. The default depends on dtype of the array. For object-dtype, numpy.nan is used. For StringDtype, pandas.NA is used.Returns:
Series/Index/array of boolean values.
325-2、参数

325-2-1、pat(必须)一个字符串或者正则表达式,用于匹配数据中的每个字符串。

325-2-2、case(可选,默认值为True)如果为True,则匹配时区分大小写;如果为False,则不区分大小写。

325-2-3、flags(可选,默认值为0)一个标志位,用于修改正则表达式的行为,可以使用re模块中的标志,如re.IGNORECASE等,例如,可以通过设置这个参数来实现不区分大小写的匹配。

325-2-4、na(可选,默认值为None)用于指定当字符串为缺失值(NaN)时的返回值,如果未指定,则默认返回None。

325-3、功能

        检查每个字符串是否从开头开始符合指定的正则表达式模式,这可以用于数据清理和验证,帮助识别符合特定条件的字符串。

325-4、返回值

        返回一个布尔型Series对象,表示每个字符串是否匹配指定的模式,与原始字符串系列具有相同的索引。

325-5、说明

        无

325-6、用法
325-6-1、数据准备
325-6-2、代码示例
# 325、pandas.Series.str.match方法
# 325-1、基本用法
import pandas as pd
# 创建一个字符串序列
s = pd.Series(['apple', 'banana', 'cherry', 'date'])
# 使用str.match方法检查是否以字母'a'开头
match_result = s.str.match('a')
print(match_result, end='\n\n')# 325-2、使用大小写不敏感匹配
import pandas as pd
# 创建一个字符串序列
s2 = pd.Series(['Apple', 'banana', 'Cherry', 'date'])
# 使用str.match方法检查是否以字母'a'开头,不区分大小写
match_case_insensitive = s2.str.match('a', case=False)
print(match_case_insensitive, end='\n\n')# 325-3、使用正则表达式匹配
import pandas as pd
# 创建一个字符串序列
s3 = pd.Series(['hello123', 'hi456', 'hey789', 'hello_world'])
# 使用 str.match 方法检查是否以 'hello' 开头
match_regex = s3.str.match('hello')
print(match_regex)
325-6-3、结果输出
# 325、pandas.Series.str.match方法
# 325-1、基本用法
# 0     True
# 1    False
# 2    False
# 3    False
# dtype: bool# 325-2、使用大小写不敏感匹配
# 0     True
# 1    False
# 2    False
# 3    False
# dtype: bool# 325-3、使用正则表达式匹配
# 0     True
# 1    False
# 2    False
# 3     True
# dtype: bool

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python知识点:如何使用Arcade进行简易游戏开发
  • 手机电量消耗分析工具 Battery Historian 指南
  • matlab求解方程
  • redis面试(十四)公平锁可重入
  • 【Linux入门】root密码忘记了怎么办?
  • 乳制品企业怎么防止信息泄露?使用加密软件保障数据安全
  • laravel 11 使用jw-auth进行API 登录
  • vs2022 启动之后崩溃解决方案
  • 学习嵌入式入门(十)高级定时器简介及实验(下)
  • 关于MariaDB
  • 测试需求分析(四)
  • winform中设置DateTimePicker参数为空
  • 【C++】什么是模板?
  • 第二证券:虚拟现实概念强势,博士眼镜三连板,星星科技涨停
  • spring mvc工作流程
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • C语言笔记(第一章:C语言编程)
  • iOS小技巧之UIImagePickerController实现头像选择
  • JavaScript 奇技淫巧
  • MySQL主从复制读写分离及奇怪的问题
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • React 快速上手 - 07 前端路由 react-router
  • Vue.js-Day01
  • 阿里云应用高可用服务公测发布
  • 分布式熔断降级平台aegis
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 如何胜任知名企业的商业数据分析师?
  • 延迟脚本的方式
  • hi-nginx-1.3.4编译安装
  • puppet连载22:define用法
  • ​linux启动进程的方式
  • ​经​纬​恒​润​二​面​​三​七​互​娱​一​面​​元​象​二​面​
  • #Datawhale AI夏令营第4期#AIGC文生图方向复盘
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (06)Hive——正则表达式
  • (3)nginx 配置(nginx.conf)
  • (6)添加vue-cookie
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (强烈推荐)移动端音视频从零到上手(上)
  • (循环依赖问题)学习spring的第九天
  • (转)为C# Windows服务添加安装程序
  • ****Linux下Mysql的安装和配置
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .NET BackgroundWorker
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .net MVC中使用angularJs刷新页面数据列表
  • .net流程开发平台的一些难点(1)
  • [100天算法】-不同路径 III(day 73)
  • [2009][note]构成理想导体超材料的有源THz欺骗表面等离子激元开关——
  • [20170705]lsnrctl status LISTENER_SCAN1