📜  对列进行 pandas 字符串操作 - Python (1)

📅  最后修改于: 2023-12-03 15:25:11.037000             🧑  作者: Mango

对列进行 pandas 字符串操作 - Python

在数据分析中,我们通常需要对一些字符串数据进行操作,例如提取、替换、删除等操作。Pandas 库提供了丰富的字符串处理方法,能够方便地处理这些需求。

导入 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() 方法的结合使用

除了直接使用列定义的字符串方法之外,还可以和 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 库提供的方法非常丰富,只要仔细阅读文档,就能实现各种复杂的操作。