根据字符串列表过滤熊猫中的数据框

时间:2018-09-28 16:52:49

标签: python python-2.7 pandas indexing pandas-groupby

我最近开始研究熊猫,我正尝试从ector.py导入水果列表,并将其用作过滤器以生成仅显示列表中水果的项目表。我没有得到想要的输出,我的代码有问题吗?

在ector.py内

Fruits=['Apple','Orange','Pineapples']

在Calculator.py之内

import sector
import pandas as pd

pdmart = pd.read_csv('supermarket.csv')
pdextract = pdmart.groupby('item')['price'].sum()

Fruits = pdextract[pdextract.isin(sector.Fruits)]
print Fruits

当前输出:

Series([], Name: price, dtype: float64)

所需的输出:

Item         Price
Apple        12.0
Orange       7.0
Pineapples   15.0

1 个答案:

答案 0 :(得分:2)

isin对象上应用GroupBy没有任何意义。您可以在GroupBy对象的 index 上使用布尔索引:

Fruits = pdextract[pdextract.index.isin(sector.Fruits)]

您还可以过滤GroupBy操作之前的一系列

pdextract = pdmart.loc[pdmart['item'].isin(sector.Fruits)]\
                  .groupby('item')['price'].sum()