我有一只熊猫DataFrame,有三栏:product,region和cost。
我想用pivottable.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'])但是这不起作用,因为pivot_ui()不存在一个pivot_ui()属性。
怎么做?
发布于 2018-11-26 03:58:36
第一个问题是,这个函数不接受values kwarg,而是接受vals。
您将面临的第二个问题是,您需要指定一个聚合函数(默认为Count)来总结您的值。这有点类似于pandas透视表的aggfunc参数。如果您希望只有一个值,那么像pivot_ui(df, rows=['product'], cols=['region'], vals=['cost'], aggregatorName='First')这样的东西应该可以做到这一点。
作为解释,上面的代码只是提供每个单元格输入记录的Count。Count不接受任何参数,所以单独传入vals不会改变这一点。First确实接受参数,因此传入vals=['cost']将导致每个单元格包含cost的第一个值(通过“自然排序”排序)。
https://stackoverflow.com/questions/53472501
复制相似问题