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

Python - กรอง Pandas DataFrame ด้วย numpy


สามารถใช้เมธอด 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