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"))

以下是完整程式碼 −

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

讓我們看另一個例子。在這裡,我們有不同的條件來篩選行 −

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 瀏覽量

開啟你的 職業發展

完成課程並獲得認證

開始
廣告