Python – 使用numpy过滤Pandas DataFrame

Python – 使用numpy过滤Pandas DataFrame

numpy的where()方法可用于过滤Pandas DataFrame。在where()方法中指定条件。首先,让我们导入所需的库及其别名。

import pandas as pd
import numpy as np

现在我们将创建一个带有产品记录的Pandas DataFrame。

dataFrame = pd.DataFrame({"Product": ["智能电视", "ChromeCast", "音箱", "耳机"],"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"\n过滤后的DataFrame值为:\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": ["智能电视", "ChromeCast", "音箱", "耳机"],"Opening_Stock": [300, 700, 1200, 1500],"Closing_Stock": [200, 500, 1000, 900]})

print"DataFrame...\n",dataFrame

# 使用numpy where()过滤带有2个条件的DataFrame
resValues1 = np.where((dataFrame['Opening_Stock']>=700) & (dataFrame['Closing_Stock']< 1000))

print"\n过滤后的DataFrame值为:\n",dataFrame.loc[resValues1]

# 使用numpy where()过滤带有3个条件的DataFrame
resValues2 = np.where((dataFrame['Opening_Stock']>=500) & (dataFrame['Closing_Stock']< 1000) & (dataFrame['Product'].str.startswith('C')))

print"\n过滤后的DataFrame值为:\n",dataFrame.loc[resValues2]

输出

这将产生以下输出。

DataFrame...
   Closing_Stock   Opening_Stock   Product
0          200            300     智能电视
1          500            700     ChromeCast
2         1000           1200     音箱
3          900           1500     耳机

过滤后的DataFrame值为:
   Closing_Stock   Opening_Stock   Product
1           500             700    ChromeCast
3           900            1500     耳机

过滤后的DataFrame值为:
   Closing_Stock   Opening_Stock   Product
1           500             700    ChromeCast

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程