使用Pandas选择包含特定文本的行

  • Post category:Python

当我们处理数据时,有时候需要筛选出包含特定文本的行。这时候,我们可以使用 Pandas 提供的 str.contains() 方法来实现。

下面是一个示例代码,演示了如何使用 Pandas 筛选出包含特定文本的行:

import pandas as pd

# 读取数据集
df = pd.read_csv('data.csv')

# 筛选 Name 列包含 'John' 的行
filtered_data = df[df['Name'].str.contains('John')]

# 输出筛选后的行
print(filtered_data)

这段代码做了什么呢?

首先,我们使用 Pandas 的 read_csv() 函数读取一个数据集,并将其存储在一个名为 df 的 DataFrame 中。接着,我们使用 str.contains() 方法筛选出了 Name 列包含 ‘John’ 的行,该方法返回一个布尔值的 Series,然后我们使用该 Series 对 df 进行索引,得到了包含特定文本的行。

需要注意的是,str.contains() 方法默认区分大小写,如果需要忽略大小写,则可以设置参数 case=False。

另外,我们还可以使用正则表达式来筛选,例如:

# 筛选 Name 列以 'J' 或 'M' 开头的行
filtered_data = df[df['Name'].str.contains('^(J|M)')]

上述代码使用了正则表达式中的 ^ 符号,表示以某个字符开头。

总之,使用 Pandas 筛选包含特定文本的行非常方便,希望本文能对你有所帮助。