Pandas:如何过滤包含特定字符串的行


您可以使用以下语法来过滤 pandas DataFrame 中包含特定字符串的行:

 df[df[" col "]. str . contains (“ this string ”)]

本教程通过以下 DataFrame 解释了此语法的实际使用的几个示例:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'C'],
                   ' conference ': ['East', 'East', 'East', 'West', 'West', 'East'],
                   ' points ': [11, 8, 10, 6, 6, 5]})

#view DataFrame
df

        team conference points
0 A East 11
1 A East 8
2 A East 10
3 B West 6
4 B West 6
5 C East 5

示例 1:过滤包含特定字符串的行

以下代码显示如何过滤 DataFrame 中团队列中包含“A”的行:

 df[df[" team "]. str . contains (“ A ”)]

	team conference points
0 A East 11
1 A East 8
2 A East 10

仅保留团队列包含“A”的行。

示例 2:过滤列表中包含字符串的行

以下代码显示如何过滤 DataFrame 中团队列中包含“A”或“B”的行:

 df[df[" team "]. str . contains (“ A|B ”)]

	team conference points
0 A East 11
1 A East 8
2 A East 10
3 B West 6
4 B West 6

仅保留团队列包含“A”或“B”的行。

示例 3:过滤包含部分字符串的行

在前面的示例中,我们根据与一个或多个字符串完全匹配的行进行过滤。

但是,如果我们想过滤包含部分字符串的行,我们可以使用以下语法:

 #identify partial string to look for
keep=[" Wes "]

#filter for rows that contain the partial string "Wes" in the conference column
df[df. conference . str . contains (' | ' .join (keep))]

	team conference points
3 B West 6
4 B West 6

仅保留会议列包含“Wes”的行。

其他资源

以下教程解释了如何在 pandas 中执行其他常见操作:

如何根据条件删除 Pandas DataFrame 中的行
如何根据多个条件过滤 Pandas DataFrame
如何在 Pandas DataFrame 中使用“NOT IN”过滤器

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注