25+ Python 数据操作教程(第十一节PYTHON 中的字符串函数及示例)

这篇具有很好参考价值的文章主要介绍了25+ Python 数据操作教程(第十一节PYTHON 中的字符串函数及示例)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

常用字符串函数列表

下表显示了许多常见的字符串函数及其说明及其在 MS Excel 中的等效函数。我们在工作场所都使用MS Excel,并且熟悉MS Excel中使用的功能。MS EXCEL和Python中字符串函数的比较可以帮助你快速学习函数并在面试前做好准备。

功能 描述 MS Excel 函数
字符串[:N] 从字符串开头提取 N 个字符。 左边( )
mystring[-N:] 从字符串末尾提取 N 个字符 正确的( )
字符串[X:Y] 从字符串中间提取字符,从 X 位置开始,以 Y 结束 中( )
str.split(sep=' ') 分割字符串 -
str.replace(旧子字符串,新子字符串) 用不同的子字符串替换部分文本 代替( )
str.lower() 将字符转换为小写 降低( )
str.upper() 将字符转换为大写 上部( )
str.contains('模式', case=False) 检查模式是否匹配(Pandas 函数) SQL LIKE 运算符
str.extract(正则表达式) 返回匹配的值(Pandas 函数) -
str.count('sub_string') 计算字符串中模式的出现次数 -
字符串查找() 返回子字符串或模式的位置 寻找( )
str.isalnum() 检查字符串是否仅由字母数字字符组成 -
str.islower() 检查字符是否全部小写 -
str.isupper() 检查字符是否全部大写 -
str.isnumeric() 检查字符串是否仅由数字字符组成 -
str.isspace() 检查字符串是否仅由空格字符组成 -
仅有的( ) 计算字符串长度 仅有的( )
猫( ) 连接字符串(Pandas 函数) 连接( )
分隔符.join(str) 连接字符串 连接( )

左、右和中功能

如果您是 MS Excel 中级用户,您一定使用过 LEFT、RIGHT 和 MID 函数。这些函数用于从字符串中提取 N 个字符或字母。

1. 从字符串开头提取前两个字符
mystring = "Hey buddy, wassup?"
mystring[:2]
Out[1]: 'He'
  1. string[start:stop:step] 表示项目从 0(默认)开始到(stop-1),步长为 1(默认)。
  2. mystring[:2] 相当于 mystring[0:2]
  3. mystring[:2] 告诉 Python 从字符串对象中提取前 2 个字符mystring
  4. 索引从零开始,因此它包括第一个、第二个元素,但不包括第三个元素。
2. 查找字符串的最后两个字符
mystring[-2:]

上面的命令返回p?-2开始从倒数第二个位置到字符串最大长度的范围。

3. 从字符串中间查找字符
mystring[1:3]
Out[1]: 'ey'

mystring[1:3]返回第二个和第三个字符。1指第二个字符,因为索引从 0 开始。

4. 如何反转字符串?
mystring[::-1]
Out[1]: '?pussaw ,yddub yeH'

-1告诉 Python 从末尾开始,并从右到左加 1。

5. 如何从 Pandas DataFrame 中的字符串变量中提取字符?

让我们创建一个假数据框来进行说明。在下面的代码中,我们创建一个名为的数据框df,仅包含 1 个名为var1

import pandas as pd
df = pd.DataFrame({"var1": ["A_2", "B_1", "C_2", "A_2"]})

  var1
0  A_2
1  B_1
2  C_2
3  A_2

为了处理Python Pandas Dataframe中的文本数据,我们可以使用str属性。它可用于切片字符值。

df['var1'].str[0]

在本例中,我们从变量中获取第一个字符var1。请参阅下面所示的输出。

Output
0    A
1    B
2    C
3    A

从字符串中提取单词

假设您需要从字符串中取出单词而不是字符。通常我们将一个空格作为分隔符来从字符串中查找单词。

1. 查找字符串的第一个单词
mystring.split()[0]
Out[1]: 'Hey'
怎么运行的?
  1. split()函数使用空格作为默认分隔符来中断字符串
  2. mystring.split()回报 ['Hey', 'buddy,', 'wassup?']
  3. 0返回第一个项目或单词 Hey
2. 逗号作为单词的分隔符
mystring.split(',')[0]
Out[1]: 'Hey buddy'
3. 如何提取最后一个单词
mystring.split()[-1]
Out[1]: 'wassup?'
4. 如何提取DataFrame中的单词

让我们构建一个由客户姓名组成的虚拟数据框并将其称为变量custname

mydf = pd.DataFrame({"custname": ["Priya_Sehgal", "David_Stevart", "Kasia_Woja", "Sandy_Dave"]})
        custname
0   Priya_Sehgal
1  David_Stevart
2     Kasia_Woja
3     Sandy_Dave
#First Word
mydf['fname'] = mydf['custname'].str.split('_').str[0]

#Last Word
mydf['lname'] = mydf['custname'].str.split('_').str[1]
详细说明
Output
        custname  fname    lname
0   Priya_Sehgal  Priya   Sehgal
1  David_Stevart  David  Stevart
2     Kasia_Woja  Kasia     Woja
3     Sandy_Dave  Sandy     Dave
  1. str.split( )类似于split( ). 它用于激活Python中pandas数据框的分割功能。
  2. 在上面的代码中,我们创建了两个新列,名为fnamelname存储名字和姓氏。

Pandas DataFrame 中的 SQL LIKE 运算符

在 SQL 中,LIKE 语句用于查找字符串是否匹配或包含模式。我们可以在 python 中使用str.contains( )function 来实现类似的功能。

df2 = pd.DataFrame({"var1": ["AA_2", "B_1", "C_2", "a_2"],
                    “var2”:[“X_2”,“Y_1”,“Z_2”,“X2”]})
   var1 var2
0  AA_2  X_2
1   B_1  Y_1
2   C_2  Z_2
3   a_2   X2
如何在变量 var1 中查找包含 A 或 B 的行?
df2['var1'].str.contains('A|B')

str.contains(pattern)用于匹配 Pandas Dataframe 中的模式。

Output
0     True
1     True
2    False
3    False
由于函数区分大小写,因此上述命令对第四行返回FALSE 。为了忽略大小写,我们可以使用case=False参数。请参阅下面的工作示例。
df2['var1'].str.contains('A|B', case=False)
如何过滤包含特定模式的行?

在下面的程序中,我们要求 Python 根据条件对数据进行子集化 - 包含字符值 A 或 B。它相当于 SQL 中的 WHERE 关键字。

df2[df2['var1'].str.contains('A|B', case=False)]
Output 
 var1 var2
0  AA_2  X_2
1   B_1  Y_1
3   a_2   X2

假设您只需要那些字母后跟“_”的值

df2[df2['var1'].str.contains('^[AZ]_', case=False)]

^是正则表达式的标记,表示以特定项目开始。

  var1 var2
1  B_1  Y_1
2  C_2  Z_2
3  a_2   X2

查找特定字符或关键字的位置

str.find(pattern)用于查找子字符串的位置。在本例中,子字符串是“_”。

df2['var1'].str.find('_')
0 2
1 1
2 1
3 1

替换子串

str.replace(old_text,new_text,case=False)用于用一些新值或模式替换特定字符或模式。在下面的代码中,我们将变量 var1 中的 _ 替换为 -- 。

df2['var1'].str.replace('_', '--', case=False)
Output
0    AA--2
1     B--1
2     C--2
3     A--2

我们还可以像下面的程序一样复杂的模式。+表示某项出现一次或多次。在这种情况下,字母表出现 1 次或多次。

df2['var1'].str.replace('[AZ]+_', 'X', case=False)
0 X2
1 X1
2 X2
3 X2

查找字符串的长度

len(string)用于计算字符串的长度。在 pandas 数据框中,您可以申请str.len()相同的。

df2['var1'].str.len()
Output
0    4
1    3
2    3
3    3

要查找特定字符的出现次数(例如,每行中出现“A”的次数),您可以使用str.count(pattern)function.

df2['var1'].str.count('A')

转换为小写和大写

#Convert to lower case
mydf['custname'].str.lower()

#Convert to upper case
mydf['custname'].str.upper()

删除前导和尾随空格

  1. 1、str.strip()删除前导和尾随空格。
  2. 2、str.lstrip()删除前导空格(在开头)。
  3. 3、str.rstrip()删除尾随空格(在末尾)。
df1 = pd.DataFrame({'y1': [' jack', 'jill ', ' jesse ', 'frank ']})
df1['both']=df1['y1'].str.strip()
df1['left']=df1['y1'].str.lstrip()
df1['right']=df1['y1'].str.rstrip()
        y1   both    left   right
0     jack   jack    jack    jack
1    jill    jill   jill     jill
2   jesse   jesse  jesse    jesse
3   frank   frank  frank    frank

将数字转换为字符串

通过使用str( )函数,您可以将数值转换为字符串。

myvariable = 4
mystr = str(myvariable)

连接或连接字符串

只需使用+,您就可以连接两个字符串值。

x = "Deepanshu"
y ="Bhalla"
x+y
DeepanshuBhalla

如果您想在两个字符串之间添加空格,可以使用 - x+' '+yreturnsDeepanshu Bhalla 假设您有一个包含多个字符串值的列表,并且您想要将它们组合起来。您可以使用join( )函数。

string0 = ['Ram', 'Kumar', 'Singh']
' '.join(string0)
Output
'Ram Kumar Singh'

假设您想要组合或连接 pandas 数据框的两列。

mydf['fullname' ] = mydf['fname'] + ' ' + mydf['lname']

或者

mydf['fullname'] = mydf[['fname', 'lname']].apply(lambda x: ' '.join(x), axis=1)
     custname  fname    lname       fullname
0   Priya_Sehgal  Priya   Sehgal   Priya Sehgal
1  David_Stevart  David  Stevart  David Stevart
2     Kasia_Woja  Kasia     Woja     Kasia Woja
3     Sandy_Dave  Sandy     Dave     Sandy Dave

Pandas 中的 SQL IN 运算符

我们可以使用isin(list)函数在过滤或子集标准中包含多个值。

mydata = pd.DataFrame({'product': ['A', 'B', 'B', 'C','C','D','A']})
mydata[mydata['product'].isin(['A', 'B'])]
  product
0       A
1       B
2       B
6       A
如何在选择多个值时应用 NOT 条件?

我们可以使用sign~告诉python否定条件。

mydata[~mydata['product'].isin(['A', 'B'])]

从字符串中提取特定模式

str.extract(r'regex-pattern')用于此任务。

df2['var1'].str.extract(r'(^[A-Z]_)')

r'(^[A-Z]_)'表示以 AZ 开头,后跟“_”

0    NaN
1     B_
2     C_
3    NaN

为了删除缺失值,我们可以使用dropna( )函数。文章来源地址https://www.toymoban.com/news/detail-643149.html

df2['var1'].str.extract(r'(^[AZ]_)').dropna()

到了这里,关于25+ Python 数据操作教程(第十一节PYTHON 中的字符串函数及示例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第十一章 Python第三方库纵览

    11.1 网络爬虫方向 网络爬虫是自动进行HTTP访问并捕获HTML页面的程序。Python语言提供了多个具备网络爬虫功能的第三方库。这里介绍两个常用的Python网络爬虫库: requests和scrapy 。 11.1.1 requests requests库是一个简洁且简单的处理HTTP请求的第三方库,其最大优点是程序编写过程更

    2024年02月08日
    浏览(42)
  • python笔记:第十一章正则表达式

    以一定规则,快速检索文本,或是实现一些替换操作 默认下,区分大小写 字符 描述 d 代表任意数字,就是阿拉伯数字 0-9 这些 D 代表非数字的字符。与d完全相反 w 代表字母,数字,下划线。也就是 a-z、A-Z、0-9、_ W 跟 w 相反 ,代表不是字母,不是数字,不是下划线的字

    2024年02月17日
    浏览(41)
  • Python地理数据处理 二十一:基于arcpy批量操作(三)

    实现将给定的 .shp 文件中的所有省份作为裁剪范围,对给定的 .tif 文件进行裁剪,输出所有省份的单独 .tif 文件: 实现对文件名前14个字符一样的tif图像进行栅格运算求和: 如:XXXX_XXX_2003.M01_Mean、XXXX_XXX_2003.M02_Mean、XXXX_XXX_2003.M03_Mean;XXXX_XXX_2004.M01_Mean、XXXX_XXX_2004.M02_Mean、

    2024年02月01日
    浏览(54)
  • Python3 函数与数据结构 | 菜鸟教程(十一)

    目录 一、Python3 函数 (一)定义一个函数 1、你可以定义一个由自己想要功能的函数,以下是简单的规则:  2、语法 3、实例 ①让我们使用函数来输出\\\"Hello World!\\\": ②更复杂点的应用,函数中带上参数变量: Ⅰ实例:比较两个数,并返回较大的数: Ⅱ实例:计算面积函数: (

    2024年02月11日
    浏览(45)
  • 2020第十一届蓝桥杯Python组国赛【真题+解析+代码】

    🚀 真题练习,冲刺国赛 🚀 2020年第十一届蓝桥python组国赛真题+解析+代码 博观而约取,厚积而薄发 🏆 国赛真题目录 🍰1.题目 美丽的2 👑2.思路分析 难度:⭐️ 标签:枚举字符串 🎇 思路:暴力法 🔱 思路分析: 本题为填空题,只需要遍历 1 → 2020 1→2020 1 → 2020 即可:

    2024年02月07日
    浏览(49)
  • 蓝桥杯第十一届省赛——数字三角形(python组)

    题目:数字三角形 【问题描述】: 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最 大的和。 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右 边

    2023年04月10日
    浏览(49)
  • 数据结构(超详细讲解!!)第二十一节 特殊矩阵的压缩存储

    值相同的元素只存储一次 压缩掉对零元的存储,只存储非零元 特殊形状矩阵: 是指非零元(如值相同的元素)或零元素分布具有一定规律性的矩阵。 如: 对称矩阵 上三角矩阵   下三角矩阵 对角矩阵   准对角矩阵 三角矩阵大体分为三类:下三角矩阵、上三角矩阵和对称

    2024年02月04日
    浏览(50)
  • (数字图像处理MATLAB+Python)第十一章图像描述与分析-第五、六节:边界描述和矩描述

    A:概述 边界链码 :是一种用于图像处理和计算机视觉领域的技术,主要用于 描述二进制图像中物体的轮 廓。边界链码通过将轮廓转化为一系列有序的连续像素点来表示。边界链码的基本思想是 从图像中选择一个起始点,然后按照一定的顺序遍历相邻像素,将它们连接起来

    2024年02月10日
    浏览(66)
  • Python教程(25)——Python中参数类型详解

    当我们在编写函数时,会定义一些占位符,这些占位符就是参数,参数是函数定义中用于接收外部传递值的占位符,这个会帮助我们在函数被调用时接收外部传递的值。在Python当中,有各种各样类型的参数,主要有位置参数、默认参数、参数、可变位置参数、可变关键

    2024年01月18日
    浏览(42)
  • c++学习第十一讲---文件操作

    c++中对文件操作需要包含头文件 fstream  文本文件:以ASCII码形式储存 二进制文件:以二进制文件储存(读不懂) 操作文件三大类: 读:ifstream ; 写:ofstream ; 读写:fstream 1.写文件: 步骤: (1)包含头文件:#include fstream (2)创建流对象:ofstream ofs; (3)打开文件:ofs.op

    2024年01月24日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包