Pandas最常用的7种字符串处理方法

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()方法

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()方法

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()方法

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()方法

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()方法

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()

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

本文链接:https://my.lmcjl.com/post/19995.html

展开阅读全文

4 评论

留下您的评论.