下表显示了许多常见的字符串函数及其说明及其在 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 个字符或字母。
mystring = "Hey buddy, wassup?"
mystring[:2]
Out[1]: 'He'
string[start:stop:step]
表示项目从 0(默认)开始到(stop-1),步长为 1(默认)。mystring[:2]
相当于mystring[0:2]
mystring[:2]
告诉 Python 从字符串对象中提取前 2 个字符mystring
。- 索引从零开始,因此它包括第一个、第二个元素,但不包括第三个元素。
mystring[-2:]
上面的命令返回p?
。-2开始从倒数第二个位置到字符串最大长度的范围。
mystring[1:3]
Out[1]: 'ey'
mystring[1:3]
返回第二个和第三个字符。1指第二个字符,因为索引从 0 开始。
mystring[::-1]
Out[1]: '?pussaw ,yddub yeH'
-1告诉 Python 从末尾开始,并从右到左加 1。
让我们创建一个假数据框来进行说明。在下面的代码中,我们创建一个名为的数据框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
从字符串中提取单词
假设您需要从字符串中取出单词而不是字符。通常我们将一个空格作为分隔符来从字符串中查找单词。
mystring.split()[0]
Out[1]: 'Hey'
split()
函数使用空格作为默认分隔符来中断字符串mystring.split()
回报['Hey', 'buddy,', 'wassup?']
0
返回第一个项目或单词Hey
mystring.split(',')[0]
Out[1]: 'Hey buddy'
mystring.split()[-1]
Out[1]: 'wassup?'
让我们构建一个由客户姓名组成的虚拟数据框并将其称为变量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
str.split( )
类似于split( )
. 它用于激活Python中pandas数据框的分割功能。- 在上面的代码中,我们创建了两个新列,名为
fname
并lname
存储名字和姓氏。
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
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、str.strip()
删除前导和尾随空格。2、str.lstrip()
删除前导空格(在开头)。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+' '+y
returnsDeepanshu 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
我们可以使用sign~
告诉python否定条件。
mydata[~mydata['product'].isin(['A', 'B'])]
从字符串中提取特定模式
str.extract(r'regex-pattern')
用于此任务。
df2['var1'].str.extract(r'(^[A-Z]_)')
r'(^[A-Z]_)'
表示以 AZ 开头,后跟“_”文章来源:https://www.toymoban.com/news/detail-643149.html
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模板网!