关键词

通过5个例子让你学会Pandas中的字符串过滤

当我们在使用Pandas操作数据时,经常会遇到需要对数据中的字符串进行过滤的情况。Pandas提供了很多方法来方便地进行字符串过滤和搜索。通过5个例子,我们将学习Pandas中的字符串过滤和搜索技巧。

1. 字符串包含

要检查某个字符串是否包含另一个字符串,我们可以使用.str.contains()方法。示例如下:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'Dan', 'Ella', 'Frank'], 
        'gender': ['Female', 'Male', 'Male', 'Male', 'Female', 'Male'], 
        'age': [25, 32, 18, 47, 22, 19]}
df = pd.DataFrame(data)

# 判断name列中是否包含'li'字符串
result = df[df['name'].str.contains('li')]

print(result)

该代码将输出包含'li'字符串的DataFrame:

      name  gender  age
0    Alice  Female   25
3      Dan    Male   47

2. 字符串匹配

如果要检查某个字符串是否与另一个字符串匹配,我们可以使用.str.match()方法。示例如下:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'Dan', 'Ella', 'Frank'], 
        'gender': ['Female', 'Male', 'Male', 'Male', 'Female', 'Male'], 
        'age': [25, 32, 18, 47, 22, 19]}
df = pd.DataFrame(data)

# 判断name列中是否以'Alice'开头,并忽略大小写
result = df[df['name'].str.match('al', case=False)]

print(result)

该代码将输出以'al'开头的字符串的DataFrame:

    name  gender  age
0  Alice  Female   25

3. 字符串替换

要替换字符串中的部分内容,我们可以使用.str.replace()方法。示例如下:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'Dan', 'Ella', 'Frank'], 
        'gender': ['Female', 'Male', 'Male', 'Male', 'Female', 'Male'], 
        'age': [25, 32, 18, 47, 22, 19]}
df = pd.DataFrame(data)

# 将name列中的'A'替换为'O'
df['name'] = df['name'].str.replace('A', 'O')

print(df)

该代码将输出替换后的DataFrame:

     name  gender  age
0   Olice  Female   25
1     Bob    Male   32
2  Charlie    Male   18
3      Dan    Male   47
4    Ella  Female   22
5   Frank    Male   19

4. 字符串分割

如果要将字符串分割成多个部分,我们可以使用.str.split()方法。该方法返回一个Series,可以通过.str.get()方法访问单个元素。示例如下:

import pandas as pd

data = {'name': ['Alice Smith', 'Bob Brown', 'Charlie Wang', 'Dan Lee', 'Ella Zhang', 'Frank Xu'], 
        'gender': ['Female', 'Male', 'Male', 'Male', 'Female', 'Male'], 
        'age': [25, 32, 18, 47, 22, 19]}
df = pd.DataFrame(data)

# 将name列中的姓名分割成姓和名,并分别作为新的两列加入DataFrame
df[['last_name', 'first_name']] = df['name'].str.split(' ', expand=True)

print(df)

该代码将输出分割后的DataFrame:

           name  gender  age last_name first_name
0   Alice Smith  Female   25     Alice      Smith
1     Bob Brown    Male   32       Bob      Brown
2  Charlie Wang    Male   18   Charlie       Wang
3       Dan Lee    Male   47       Dan        Lee
4    Ella Zhang  Female   22      Ella      Zhang
5      Frank Xu    Male   19     Frank         Xu

5. 字符串提取

如果要从字符串中提取部分内容,我们可以使用.str.extract()方法。该方法使用正则表达式进行匹配,并返回一个DataFrame。示例如下:

import pandas as pd

data = {'name': ['Alice Smith', 'Bob Brown', 'Charlie Wang', 'Dan Lee', 'Ella Zhang', 'Frank Xu'], 
        'gender': ['Female', 'Male', 'Male', 'Male', 'Female', 'Male'], 
        'age': [25, 32, 18, 47, 22, 19]}
df = pd.DataFrame(data)

# 从name列中提取姓和名
result = df['name'].str.extract('(\w+)\s(\w+)', expand=True)

print(result)

该代码将输出提取后的DataFrame:

        0      1
0   Alice  Smith
1     Bob  Brown
2  Charlie   Wang
3     Dan    Lee
4    Ella  Zhang
5   Frank     Xu

以上是通过5个例子让你学会Pandas中的字符串过滤的完整攻略,希望能对你有所帮助。

本文链接:http://task.lmcjl.com/news/17263.html

展开阅读全文