Python - 使用 Pandas 中的 query 函数基于列值筛选行?


要基于列值筛选行,我们可以使用 query() 函数。在该函数中,设置用于筛选记录的条件。首先,导入所需的库 −

import pandas as pd

以下是我们的团队记录数据 −

Team = [['India', 1, 100],['Australia', 2, 85],['England', 3, 75],['New Zealand', 4 , 65],['South Africa', 5, 50],['Bangladesh', 6, 40]]

从上面创建 DataFrame 并添加列 −

dataFrame = pd.DataFrame(Team, columns=['Country', 'Rank', 'Points'])

使用 query() 筛选“Rank”等于 5 的记录 −

dataFrame.query("Rank == 5"))

以下是完整代码 −

Open Compiler
import pandas as pd # data in the form of list of team rankings Team = [['India', 1, 100],['Australia', 2, 85],['England', 3, 75],['New Zealand', 4 , 65],['South Africa', 5, 50],['Bangladesh', 6, 40]] # Creating a DataFrame and add columns dataFrame = pd.DataFrame(Team, columns=['Country', 'Rank', 'Points']) print"DataFrame...\n",dataFrame # using query to filter rows print"\nFetch Team with Rank 5..\n",dataFrame.query("Rank == 5")

输出

将生成以下输出 −

DataFrame...
        Country   Rank   Points
0         India      1      100
1     Australia      2       85
2       England      3       75
3   New Zealand      4       65
4  South Africa      5       50
5    Bangladesh      6       40

Fetch Team with Rank 5..
        Country   Rank   Points
4  South Africa      5       50

Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.

让我们看另一个例子。在这里,我们有不同的条件来筛选行 −

Open Compiler
import pandas as pd # data in the form of list of team rankings Team = [['India', 1, 100],['Australia', 2, 85],['England', 3, 75],['New Zealand', 4 , 65],['South Africa', 5, 50],['Bangladesh', 6, 40]] # Creating a DataFrame and add columns dataFrame = pd.DataFrame(Team, columns=['Country', 'Rank', 'Points']) print"DataFrame...\n",dataFrame # using query to filter rows print"\nFetch Team with points above 70 and Rank less than 3..\n" print(dataFrame.query("Points > 70 and Rank <3"))

输出

将生成以下输出 −

DataFrame...
        Country   Rank   Points
0         India      1      100
1     Australia      2       85
2       England      3       75
3   New Zealand      4       65
4  South Africa      5       50
5    Bangladesh      6       40

Fetch Team with points above 70 and Rank less than 3..

     Country   Rank   Points
0      India      1      100
1  Australia      2       85

更新于: 2021-09-21

583 浏览量

开启你的 职业发展

完成课程并获得认证

开始
广告