📅  最后修改于: 2023-12-03 15:25:11.037000             🧑  作者: Mango
在数据分析中,我们通常需要对一些字符串数据进行操作,例如提取、替换、删除等操作。Pandas 库提供了丰富的字符串处理方法,能够方便地处理这些需求。
导入 Pandas 库:
import pandas as pd
首先,我们创建一个包含字符串数据的 DataFrame:
data = {'name': ['Alice Smith', 'Bob Johnson', 'Charlie Brown', 'David Lee'],
'email': ['alice.smith@example.com', 'bob.johnson@example.com', 'charlie@example.com', 'david_lee@example.com']}
df = pd.DataFrame(data)
现在,我们有一个包含姓名和邮箱的 DataFrame。
下面是一些常用的列定义的字符串方法:
str.len()
:返回字符串长度。str.lower()
:将字符串转换为小写。str.upper()
:将字符串转换为大写。str.strip()
:去除字符串两侧的空格。str.lstrip()
:去除字符串左侧的空格。str.rstrip()
:去除字符串右侧的空格。str.contains(sub)
:如果字符串包含子字符串 sub,则返回 True。str.replace(old, new)
:将字符串中的 old 子字符串替换为 new。str.split(sep)
:使用分隔符 sep 将字符串切分为多个子字符串,并返回一个列表。下面是示例代码:
df['name_length'] = df['name'].str.len()
df['name_lower'] = df['name'].str.lower()
df['name_upper'] = df['name'].str.upper()
df['name_strip'] = df['name'].str.strip()
df['name_lstrip'] = df['name'].str.lstrip()
df['name_rstrip'] = df['name'].str.rstrip()
df['email_contains_example'] = df['email'].str.contains('example')
df['email_replaced'] = df['email'].str.replace('.', '_')
df['name_split'] = df['name'].str.split(' ')
以上代码将每个字符串方法的结果存储在新的列中。
除了直接使用列定义的字符串方法之外,还可以和 apply() 方法结合使用,实现更复杂的字符串操作。
例如,下面的代码将在 DataFrame 中添加一个新的列,该列将姓名拆分为“姓”和“名”:
df['last_name'] = df['name'].apply(lambda x: x.split(' ')[-1])
df['first_name'] = df['name'].apply(lambda x: ' '.join(x.split(' ')[:-1]))
如果 DataFrame 中的字符串是以空格分隔的,我们可以使用 expand 参数将多个新的列添加到 DataFrame 中。
例如,下面的代码将姓名拆分为“姓”和“名”,并将结果存储在两个新的列中:
df[['last_name', 'first_name']] = df['name'].str.split(' ', expand=True)
以上就是 Pandas 库中一些常用的列定义的字符串方法和和 apply() 方法结合使用的示例。使用这些方法可以方便地对字符串数据进行操作。始终记住,Pandas 库提供的方法非常丰富,只要仔细阅读文档,就能实现各种复杂的操作。