在 Jupyter 中显示数据 pivottable.js
displaying data in Jupyter pivottable.js
我有一个包含 3 列的 pandas DataFrame:product
、region
和 cost
.
我想在 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" 排序)。
我有一个包含 3 列的 pandas DataFrame:product
、region
和 cost
.
我想在 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" 排序)。