Python - 使用 numpy 过滤 Pandas DataFrame

pythonserver side programmingprogramming更新于 2025/10/27 23:40:17

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

# 使用 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')))

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

相关文章


有用资源