在 Jupyter 中显示数据 pivottable.js

displaying data in Jupyter pivottable.js

我有一个包含 3 列的 pandas DataFrame:productregioncost.

我想在 Jupyter notebook 中使用 pivottable.js 显示枢轴 table,这样 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'])

但这不起作用,因为 pivot_ui() 不存在 values 属性。

怎么做?

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

您将面临的第二个问题是您需要指定一个聚合函数(默认为 Count)来汇总您的值。这有点类似于 pandas 枢轴 table 的 aggfunc 论点。如果您希望只有一个值,那么 pivot_ui(df, rows=['product'], cols=['region'], vals=['cost'], aggregatorName='First') 应该可以解决问题。

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