สามารถใช้เมธอด numpy where() เพื่อกรอง Pandas DataFrame กล่าวถึงเงื่อนไขในเมธอด where() ขั้นแรก ให้เรานำเข้าไลบรารีที่จำเป็นด้วยนามแฝงที่เกี่ยวข้อง
import pandas as pd import numpy as np
ตอนนี้เราจะสร้าง Pandas DataFrame พร้อมบันทึกผลิตภัณฑ์
dataFrame = pd.DataFrame({"Product": ["SmartTV", "ChromeCast", "Speaker", "Earphone"],"Opening_Stock": [300, 700, 1200, 1500],"Closing_Stock": [200, 500, 1000, 900]})
ใช้ numpy where() เพื่อกรอง DataFrame ด้วย 2 เงื่อนไข
resValues1 = np.where((dataFrame['Opening_Stock']>=700) & (dataFrame['Closing_Stock']< 1000)) print"\nFiltered DataFrame Value = \n",dataFrame.loc[resValues1]
ให้เราใช้ numpy where() อีกครั้งเพื่อกรอง DataFrame ด้วย 3 เงื่อนไข
resValues2 = np.where((dataFrame['Opening_Stock']>=500) & (dataFrame['Closing_Stock']< 1000) & (dataFrame['Product'].str.startswith('C')))
ตัวอย่าง
ต่อไปนี้เป็นรหัสที่สมบูรณ์
import pandas as pd import numpy as np dataFrame = pd.DataFrame({"Product": ["SmartTV", "ChromeCast", "Speaker", "Earphone"],"Opening_Stock": [300, 700, 1200, 1500],"Closing_Stock": [200, 500, 1000, 900]}) print"DataFrame...\n",dataFrame # using numpy where() to filter DataFrame with 2 Conditions resValues1 = np.where((dataFrame['Opening_Stock']>=700) & (dataFrame['Closing_Stock']< 1000)) print"\nFiltered DataFrame Value = \n",dataFrame.loc[resValues1] # using numpy where() to filter DataFrame with 3 conditions resValues2 = np.where((dataFrame['Opening_Stock']>=500) & (dataFrame['Closing_Stock']< 1000) & (dataFrame['Product'].str.startswith('C'))) print"\nFiltered DataFrame Value = \n",dataFrame.loc[resValues2]
ผลลัพธ์
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้
DataFrame... Closing_Stock Opening_Stock Product 0 200 300 SmartTV 1 500 700 ChromeCast 2 1000 1200 Speaker 3 900 1500 Earphone Filtered DataFrame Value = Closing_Stock Opening_Stock Product 1 500 700 ChromeCast 3 900 1500 Earphone Filtered DataFrame Value = Closing_Stock Opening_Stock Product 1 500 700 ChromeCast