Объедините аккуратные данные с holoviews - PullRequest
0 голосов
/ 09 января 2019

У меня есть аккуратный набор данных о продажах фруктов, где каждая строка представляет собой отдельную транзакцию:

df = pd.DataFrame([['2018-01', 'apple', 3],
                   ['2018-01', 'orange', 1],
                   ['2018-02', 'apple', 4],
                   ['2018-02', 'apple', 2],
                   ['2018-03', 'orange', 1]], 
                  columns=['date', 'product', 'volume'])

и я хотел бы построить график ежемесячных продаж. Поэтому я создаю набор данных

ds = hv.Dataset(df, kdims=['date', 'product'], vdims=['volume'])

затем постройте его:

ds.aggregate(['date', 'product'], np.sum).to(hv.Curve, 'date', 'volume').overlay()

aggregated monthly sales

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

df.pivot_table('volume', 'date', 'product', aggfunc='sum', fill_value=0)

или

df.groupby(['date', 'product']).sum().unstack().fillna(0)

для создания недостающих нулей.

Есть ли способ сделать то же самое в holoviews?

...