本教程概述了 Python 中使用的各种字符串(字符)函数。为了操作字符串和字符值,Python 有几个内置函数。这意味着您不需要导入或依赖 任何外部包来处理 Python 中的字符串数据类型。这是使用 Python 相对于其他数据科学工具的优势之一。处理字符串值在现实世 界中非常常见。假设您有客户的全名,并且您的经理要求您提取客户的名字和姓氏。或者您想要获取代码以“QT”开头的所有产品的信息。目录常 用字符串函数列表左、右和中功能从字符串中提取单词Pandas DataFrame 中的 SQL LIKE 运算符查找特定字符或关键 字的位置替换子串查找字符串的长度转换为小写和大写删除前导和尾随空格将数字转换为字符串连接或连接字符串Pandas 中的 SQL I N 运算符从字符串中提取特定模式常用字符串函数列表下表显示了许多常见的字符串函数及其说明及其在 MS Excel 中的等效函数。我 们在工作场所都使用MS Excel,并且熟悉MS Excel中使用的功能。MS EXCEL和Python中字符串函数的比较可以帮助 你快速学习函数并在面试前做好准备。 功能描述MS Excel 函数字符串[:N]从字符串开头提取 N 个字符。左边( )mystr ing[-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.is space()检查字符串是否仅由空格字符组成-长度()计算字符串长度LEN( )猫( )连接字符串(Pandas 函数)连接( ) 分隔符.join(str)连接字符串连接( )左、右和中功能如果您是 MS Excel 中级用户,您一定使用过 LEFT、RIGH T 和 MID 函数。这些函数用于从字符串中提取 N 个字符或字母。 1. 从字符串开头提取前两个字符mystring = "He y buddy, wassup?"mystring[:2]Out[1]: ''He''string[start:stop:step]? 表示项目从 0(默认)开始到(stop-1),步长为 1(默认)。mystring[:2]?相当于?mystring[0:2]my string[:2]?告诉 Python 从字符串对象中提取前 2 个字符mystring。索引从零开始,因此它包括第一个、第二个 元素,但不包括第三个元素。2. 查找字符串的最后两个字符mystring[-2:]上面的命令返回p?。-2开始从倒数第二个位置到字 符串最大长度的范围。 3. 从字符串中间查找字符mystring[1:3]Out[1]: ''ey''mystring[1:3]返回第 二个和第三个字符。1指第二个字符,因为索引从 0 开始。 4. 如何反转字符串?mystring[::-1]Out[1]: ''?p ussaw,yddub yeH''-1告诉 Python 从末尾开始,并从右到左加 1。 5. 如何从 Pandas DataFra me 中的字符串变量中提取字符?让我们创建一个假数据框来进行说明。在下面的代码中,我们创建一个名为的数据框df,仅包含 1 个名为 var1,将 pandas 导入为 pd import pandas as pddf = pd.DataFrame({"var1" : ["A_2", "B_1", "C_2", "A_2"]}) var10 A_21 B_12 C_23 A_2为了处理 Python Pandas Dataframe中的文本数据,我们可以使用str属性。它可用于切片字符值。 df[''var1''].s tr[0]在本例中,我们从变量中获取第一个字符var1。请参阅下面所示的输出。 Output0 A1 B2 C3 A从字符串中提取单词假设您需要从字符串中取出单词而不是字符。通常我们将一个空格作为分隔符来从字符串中查找单词。 1. 查找 字符串的第一个单词mystring.split()[0]Out[1]: ''Hey''怎么运行的?split()函数使用空格作为默认分 隔符来中断字符串mystring.split()回报?[''Hey'', ''buddy,'', ''wassup?'']0返回第一个项目或单 词?Hey2. 逗号作为单词的分隔符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"]} ) custname0 Priya_Sehgal1 David_Stevart2 Kasia_Woja3 S andy_Dave#First Wordmydf[''fname''] = mydf[''custname''].str.split(''_ '').str[0]#Last Wordmydf[''lname''] = mydf[''custname''].str.split(''_'' ).str[1]详细说明str.split( )类似于split( ).?它用于激活Python中pandas数据框的分割功能。在 上面的代码中,我们创建了两个新列,名为fname并lname存储名字和姓氏。Pandas DataFrame 中的 SQL LIK E 运算符在 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 var20 AA_ 2 X_21 B_1 Y_12 C_2 Z_23 a_2 X2如何在变量 var1 中查找包含 A 或 B 的行?df2[''var1''].str.contains(''A|B'')str.contains(pattern)用于匹配 Panda s Dataframe 中的模式。 输出0 正确1 真实2 错误3 错误Output0 True1 True2 False3 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)]输出 变量1 变量20 AA_2 X_21 B_1 Y_13 a_2 X2var1 var20 AA_2 X_21 B_1 Y_13 a_2 X2假设您只需要那些字母后跟“_”的值 df2[df2[''var1''].str.contains(''^ [AZ]_'', case=False)]^是正则表达式的标记,表示以特定项目开始。 变量1 变量21 B_1 Y_12 C_2 Z_23 a_2 X2 var1 var21 B_1 Y_12 C_2 Z_23 a_2 X2查找特定字符或关键字的 位置str.find(pattern)用于查找子字符串的位置。在本例中,子字符串是“_”。 df2[''var1''].str.fin d(''_'')0 21 12 13 1替换子串str.replace(old_text,new_text,case=False)用于 用一些新值或模式替换特定字符或模式。在下面的代码中,我们将变量 var1 中的 _ 替换为 -- 。 df2[''var1''].st r.replace(''_'', ''--'', case=False)输出0 AA--21 B--12C--23A--2我们还可以像下面 的程序一样复杂的模式。+表示某项出现一次或多次。在这种情况下,字母表出现 1 次或多次。 df2[''var1''].str.repl ace(''[AZ]+_'', ''X'', case=False)0 X21 X12 X23 X2查找字符串的长度len(string) 用于计算字符串的长度。在 pandas 数据框中,您可以申请str.len()相同的。 df2[''var1''].str.len() Output0 AA--21 B--12 C--23 A--2要查找特定字符的出现次数(例如,每行中 出现“A”的次数),您可以使用str.count(pattern)function. df2[''var1''].str.count( ''A'')转换为小写和大写str.lower()和str.upper()函数用于将字符串转换为小写和大写值。 #转换为小写mydf[ ''custname''].str.lower()#转换为大写mydf[''custname''].str.upper()#Convert to lower casemydf[''custname''].str.lower()#Convert to upper casem ydf[''custname''].str.upper()删除前导和尾随空格str.strip()删除前导和尾随空格。str.lstr ip()删除前导空格(在开头)。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 right0 jack jack jac k jack1 jill jill jill jill2 jesse jesse jess e jesse3 frank frank frank frank将数字转换为字符串通过使用str( )函数, 您可以将数值转换为字符串。 myvariable = 4mystr = str(myvariable)连接或连接字符串只需使用+, 您就可以连接两个字符串值。 DeepanshuBhalla如果您想在两个字符串之间添加空格,可以使用 -?x+'' ''+yretur nsDeepanshu Bhalla?假设您有一个包含多个字符串值的列表,并且您想要将它们组合起来。您可以使用join( )函数。 string0 = [''Ram'', ''Kumar'', ''Singh'']'' ''.join(string0)Output''Ram K umar Singh''假设您想要组合或连接 pandas 数据框的两列。 mydf[''全名''] = mydf[''fname''] + '' '' + mydf[''lname'']或者 mydf[''fullname''] = mydf[[''fname'', ''lname''] ].apply(lambda x: '' ''.join(x), axis=1) custname fname lname fullname0 Priya_Sehgal Priya Sehgal Priya Sehgal1 Da vid_Stevart David Stevart David Stevart2 Kasia_Woja Kasia Woja Kasia Woja3 Sandy_Dave Sandy Dave Sand y DavePandas 中的 SQL IN 运算符我们可以使用isin(list)函数在过滤或子集标准中包含多个值。 mydat a = pd.DataFrame({''产品'': [''A'', ''B'', ''B'', ''C'', ''C'', ''D'', ''A'']})myda ta[mydata[''产品''].isin([''A'', ''B''])]mydata = pd.DataFrame({''product'' : [''A'', ''B'', ''B'', ''C'',''C'',''D'',''A'']})mydata[mydata[''product''].isin([''A'', ''B''])] product0 A1 B2 B6 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 NaN1 B_2 C_3 NaN为了删除缺失值,我们可以使用dropna( )函数。 df2[''var1''].str.extract(r''(^[AZ]_)'').dropna()相关文章? |
|