Pandas:如何在 query() 函数中使用变量


您可以使用以下语法在 pandas 中使用query()函数并引用变量名称:

 df. query (' team == @team_name ')

此特定查询在 pandas DataFrame 中搜索行,其中team列等于存储在名为team_name的变量中的值。

以下示例展示了如何在实践中使用此语法。

示例:如何在 Pandas 查询中使用变量

假设我们有以下 pandas DataFrame,其中包含有关各种篮球运动员的信息:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C '],
                   ' position ':['G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F'],
                   ' points ': [22, 25, 24, 39, 34, 20, 18, 17, 20, 19, 22]})

#view DataFrame
print (df)

   team position points
0 AG 22
1 AG 25
2 AF 24
3 BG 39
4 BF 34
5 BF 20
6 BF 18
7 GC 17
8 GC 20
9 CF 19
10 CF 22

现在假设我们想要查找team列中的值等于 C 的行。

我们可以使用以下语法创建一个名为team_name且等于“C”的变量,然后在query()函数中引用该变量:

 #specify team name to search for
team_name = ' C '

#query for rows where team is equal to team_name
df. query (' team == @team_name ')

        team position points
7 C G 17
8 C G 20
9 C F 19
10 C F 22

请注意, query()函数返回team列中的值等于 C 的所有行。

另请注意,如果需要,我们可以在query()函数中引用多个变量。

例如,以下代码显示如何使用query()函数返回team列中的值等于名为team_A的变量名为team_C的变量的值的所有行:

 #create two variables
team_A = ' A ' 
team_C = ' C '

#query for rows where team is equal to either of the two variables
df. query (' team == @team_A | team == @team_C ')

        team position points
0 A G 22
1 A G 25
2 A F 24
7 C G 17
8 C G 20
9 C F 19
10 C F 22

该查询返回 DataFrame 中的所有行,其中team等于我们指定的两个变量之一中存储的值。

注意:您可以在此处找到 pandas query()函数的完整文档。

其他资源

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

Pandas:如何根据字符串长度过滤行
Pandas:如何根据条件删除行
Pandas:如何使用“NO IN”过滤器

添加评论

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