У меня есть аккуратный набор данных о продажах фруктов, где каждая строка представляет собой отдельную транзакцию:
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()
Моя проблема в том, что если в течение определенного месяца не было продаж продукта, это не будет отображаться в качестве результата в результате.
Я знаю, что в пандах нужно использовать
df.pivot_table('volume', 'date', 'product', aggfunc='sum', fill_value=0)
или
df.groupby(['date', 'product']).sum().unstack().fillna(0)
для создания недостающих нулей.
Есть ли способ сделать то же самое в holoviews
?