赞
踩
目录
Pandas DataFrame 中的 SQL LIKE 运算符
功能 | 描述 | 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() | 检查字符串是否仅由空格字符组成 | - |
长度() | 计算字符串长度 | LEN( ) |
猫( ) | 连接字符串(Pandas 函数) | 连接( ) |
分隔符.join(str) | 连接字符串 | 连接( ) |
- 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,
将 pandas 导入为 pd
- 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]
str.split( )
类似于split( )
. 它用于激活Python中pandas数据框的分割功能。fname
并lname
存储名字和姓氏。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 中的模式。
输出
0 正确
1 真实
2 错误
3 错误
- Output
- 0 True
- 1 True
- 2 False
- 3 False
由于函数区分大小写,因此上述命令对第四行返回FALSE 。为了忽略大小写,我们可以使用case=False
参数。请参阅下面的工作示例。
df2['var1'].str.contains('A|B', case=False)
如何过滤包含特定模式的行?
df2[df2['var1'].str.contains('A|B', case=False)]
输出
变量1 变量2
0 AA_2 X_2
1 B_1 Y_1
3 a_2 X2
- var1 var2
- 0 AA_2 X_2
- 1 B_1 Y_1
- 3 a_2 X2
假设您只需要那些字母后跟“_”的值
df2[df2['var1'].str.contains('^[AZ]_', case=False)]
^
是正则表达式的标记,表示以特定项目开始。
变量1 变量2
1 B_1 Y_1
2 C_2 Z_2
3 a_2 X2
- 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)
输出
- 0 AA--2
- 1 B--1
- 2C--2
- 3A--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 AA--2
- 1 B--1
- 2 C--2
- 3 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 case
- mydf['custname'].str.lower()
-
- #Convert to upper case
- mydf['custname'].str.upper()
str.strip()
删除前导和尾随空格。str.lstrip()
删除前导空格(在开头)。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)
+
,您就可以连接两个字符串值。
DeepanshuBhalla
如果您想在两个字符串之间添加空格,可以使用 - x+' '+y
returnsDeepanshu Bhalla
假设您有一个包含多个字符串值的列表,并且您想要将它们组合起来。您可以使用join( )函数。
- string0 = ['Ram', 'Kumar', 'Singh']
- ' '.join(string0)
- Output
- 'Ram Kumar Singh'
假设您想要组合或连接 pandas 数据框的两列。
mydf['全名'] = 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
isin(list)
函数在过滤或子集标准中包含多个值。
mydata = pd.DataFrame({'产品': ['A', 'B', 'B', 'C', 'C', 'D', 'A']})
mydata[mydata['产品'].isin(['A', 'B'])]
- 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
~
告诉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( )
函数。
df2['var1'].str.extract(r'(^[AZ]_)').dropna()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。