Python - 使用 NumPy 篩選 Pandas DataFrame


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() 根據 2 個條件篩選 DataFrame

resValues1 = np.where((dataFrame['Opening_Stock']>=700) & (dataFrame['Closing_Stock']< 1000))

print"\nFiltered DataFrame Value = \n",dataFrame.loc[resValues1]

讓我們再次使用 NumPy where() 根據 3 個條件篩選 DataFrame

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

更新於: 14-Sep-2021

4K+ 次瀏覽

開啟你的 職業 生涯

完成課程以獲得認證

入門
廣告
© . All rights reserved.