Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python - กรองแถวตามค่าคอลัมน์ด้วยฟังก์ชันการสืบค้นใน Pandas?


ในการกรองแถวตามค่าของคอลัมน์ เราสามารถใช้ฟังก์ชัน query() ในฟังก์ชัน กำหนดเงื่อนไขที่คุณต้องการกรองระเบียน ขั้นแรก นำเข้าไลบรารีที่จำเป็น -

import pandas as pd

ต่อไปนี้เป็นข้อมูลของเรากับ Team Records -

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() เพื่อกรองระเบียนที่มี “อันดับ” เท่ากับ 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