如何在Pandas中删除包含特定字符串的行

  • Post category:Python

在Pandas中,要删除包含特定字符串的行,可以使用字符串筛选(string filtering)的方法。具体步骤如下:

  1. 导入 Pandas 库
import pandas as pd
  1. 创建 DataFrame
data = {
    'name': ['Tom', 'Jerry', 'Mickey', 'Minnie', 'Donald', 'Daisy'],
    'age': [25, 30, 20, 22, 28, 26],
    'gender': ['M', 'M', 'M', 'F', 'M', 'F']
}

df = pd.DataFrame(data)

我们这里创建了一个包含”姓名”、”年龄”、”性别”三列的 DataFrame。

  1. 找出包含特定字符串的行
df[df['name'].str.contains('i')]

这里我们使用 str.contains() 方法来找出包含字母 “i” 的行。该方法返回一个布尔型 Series,表示每一行是否存在匹配的字符串。将其结合 DataFrame 的切片操作就可以筛选出符合条件的行了。

输出的结果如下:

     name  age gender
1   Jerry   30      M
2  Mickey   20      M
3  Minnie   22      F

这里我们可以看到,符合条件的行是包含字母 “i” 的行,即 ‘Jerry’、’Mickey’、’Minnie’。

  1. 删除符合条件的行

使用 drop() 方法来删除符合条件的行,可以使用 index 参数指定行的位置:

df = df.drop([1, 2], axis=0)
df

这里我们删除了含有字母 “i” 的行,即 ‘Jerry’、’Mickey’。注意,axis=0 表示按行删除,即删除整行。

最后的结果如下:

     name  age gender
0     Tom   25      M
3  Minnie   22      F
4  Donald   28      M
5   Daisy   26      F

这里我们可以看到,符合条件的行已经被删除了。

综上所述,我们可以使用 Pandas 的 str.contains()drop() 方法来删除包含特定字符串的行。