Pandas是一个强大的数据处理工具,除了能处理数值和时间序列等数据类型外,还能够方便地处理字符串数据。
常用的字符串处理函数如下表所示:
函数名称 | 函数功能说明 |
---|---|
lower() | 将的字符串转换为小写。 |
upper() | 将的字符串转换为大写。 |
len() | 得出字符串的长度。 |
strip() | 去除字符串两边的空格(包含换行符)。 |
split() | 用指定的分割符分割字符串。 |
cat(sep="") | 用给定的分隔符连接字符串元素。 |
get_dummies() | 返回一个带有独热编码值的 DataFrame 结构。 |
contains(pattern) | 如果子字符串包含在元素中,则为每个元素返回一个布尔值 True,否则为 False。 |
replace(a,b) | 将值 a 替换为值 b。 |
count(pattern) | 返回每个字符串元素出现的次数。 |
startswith(pattern) | 如果 Series 中的元素以指定的字符串开头,则返回 True。 |
endswith(pattern) | 如果 Series 中的元素以指定的字符串结尾,则返回 True。 |
findall(pattern) | 以列表的形式返出现的字符串。 |
swapcase() | 交换大小写。 |
islower() | 返回布尔值,检查 Series 中组成每个字符串的所有字符是否都为小写。 |
issupper() | 返回布尔值,检查 Series 中组成每个字符串的所有字符是否都为大写。 |
isnumeric() | 返回布尔值,检查 Series 中组成每个字符串的所有字符是否都为数字。 |
repeat(value) | 以指定的次数重复每个元素。 |
find(pattern) | 返回字符串第一次出现的索引位置。 |
下面就来详细介绍一下Pandas处理字符串的最常用的8种方法。
str.lower()方法可以将字符串全部转换成小写字母。
str.upper()方法可以将字符串全部转换成
大写字母。
示例如下:
import pandas as pd
df = pd.DataFrame({'string': ['Lower', 'UPPER', 'Mixed', 'lowercase and UPPERCASE']})
# 转换成小写
df['lower'] = df['string'].str.lower()
# 转换成大写
df['upper'] = df['string'].str.upper()
print(df)
输出:
string lower upper
0 Lower lower LOWER
1 UPPER upper UPPER
2 Mixed mixed MIXED
3 lowercase and UPPERCASE lowercase and uppercase LOWERCASE AND UPPERCASE
str.strip()方法可以去掉字符串开头和结尾的空格。
比如:
import pandas as pd
df = pd.DataFrame({'string': [' Leading spaces', 'Trailing spaces ', ' Both sides ', 'No spaces']})
# 去掉空格
df['stripped'] = df['string'].str.strip()
print(df)
输出结果为:
string stripped
0 Leading spaces Leading spaces
1 Trailing spaces Trailing spaces
2 Both sides Both sides
3 No spaces No spaces
str.replace()方法可以将字符串中的某个子串替换为另一个子串。
示例:
import pandas as pd
df = pd.DataFrame({'string': ['hello, world', 'goodbye, world', 'hello, pandas']})
# 替换子串
df['replaced'] = df['string'].str.replace('world', 'pandas')
print(df)
输出:
string replaced
0 hello, world hello, pandas
1 goodbye, world goodbye, pandas
2 hello, pandas hello, pandas
str.split()方法可以将字符串按照某个分隔符分割成若干个子串,并返回一个包含这些子串的列表。
例如:
import pandas as pd
df = pd.DataFrame({'string': ['apple,banana,orange', 'dog,cat,rabbit', 'John,Paul,George,Ringo']})
# 按逗号分割
df['split'] = df['string'].str.split(',')
print(df)
输出:
string split
0 apple,banana,orange [apple, banana, orange]
1 dog,cat,rabbit [dog, cat, rabbit]
2 John,Paul,George,Ringo [John, Paul, George, Ringo]
str.extract()方法可以从字符串中提取出满足某个正则表达式的子串。
示例:
import pandas as pd
s_extract = pd.Series(['apple_123', 'banana_456', 'carrot_789', 'dog'])
s_extract = s_extract.str.extract(r'(\w+)_(\d+)')
print(s_extract)
输出结果为:
0 1
0 apple 123
1 banana 456
2 carrot 789
3 NaN NaN
str.contains()方法用于检查字符串是否包含指定子串,返回布尔值。
例如:
import pandas as pd
# 创建示例Series
s = pd.Series(['apple', 'banana', 'carrot', 'dog'])
s_contains = s.str.contains('a')
print(s_contains)
输出结果为:
0 True
1 True
2 True
3 False
dtype: bool
本文链接:http://task.lmcjl.com/news/4513.html