在Jupyterivottable.js中显示数据

时间:2018-11-25 22:09:11

标签: python jupyter pivottable.js

我有一个3列的pandas DataFrame:productregioncost

我想在Jupyter笔记本中使用ivottable.js显示数据透视表,使得product是行,region是列,cost是值。

我尝试过:

from pivottablejs import pivot_ui
import pandas as pd
df = pd.DataFrame({'region':['N', 'S', 'W', 'E', 'N', 'S', 'W', 'E'], 
                   'product':['P1', 'P1', 'P1', 'P1', 'P2', 'P2', 'P2', 'P2'],
                   'cost':[10, 13, 17, 28, 29, 23, 17, 18]})
pivot_ui(df, rows=['product'], cols=['region'], values=['cost'])

但是这不起作用,因为values的{​​{1}}属性不存在。

该怎么做?

1 个答案:

答案 0 :(得分:1)

第一个问题是该函数不接受values kwarg,而是接受vals

您将要面对的第二个问题是,您需要指定一个汇总函数(默认值为Count)来汇总您的值。这有点类似于pandas数据透视表的aggfunc参数。如果您期望只有一个值,那么应该使用pivot_ui(df, rows=['product'], cols=['region'], vals=['cost'], aggregatorName='First')之类的方法。

通过解释,上面的代码仅提供每个单元格的Count输入记录。 Count不接受任何参数,因此单独传递vals不会改变这一点。 First确实接受参数,因此传入vals=['cost']将导致每个单元格每个单元格包含cost的第一个值(通过“自然排序”排序)。