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
极客教程