Фильтрация данных в пандах на основе списка строк - PullRequest
0 голосов
/ 28 сентября 2018

Я недавно начал изучать панд, я пытаюсь импортировать список фруктов из секторов.py и использовать его в качестве фильтра для создания таблицы элементов, в которой отображаются только фрукты в списке.Я не получаю желаемый вывод, что-то не так с моими кодами?

Внутри sector.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 голосов
/ 28 сентября 2018

Применение isin к объекту GroupBy не имеет смысла.Вы можете использовать логическое индексирование для index вашего GroupBy объекта:

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

Вы также можете фильтровать по серии перед вашей GroupBy операцией:

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