>>> df.pivot_table(cols='id', values='credit', rows='product', aggfunc=np.sum)
id 1 2 15
product
book -10 -5 NaN
car -150 NaN NaN
glass NaN -4 -2
ipad -15 NaN NaN
server -25 NaN -25
>>> from collections import defaultdict
>>> def hlp_count(x):
... d = defaultdict(int)
... for v in x:
... d[v] += 1
... # join in case you have more than one distinct price
... return ', '.join(['{0} ({1})'.format(k, v) for k, v in d.iteritems()])
>>> df.pivot_table(cols='id', values='credit', rows='product', aggfunc=hlp_count)
id 1 2 15
product
book -5 (2) -5 (1) NaN
car -150 (1) NaN NaN
glass NaN -2 (2) -2 (1)
ipad -15 (1) NaN NaN
server -25 (1) NaN -25 (1)
主要思想是使用^{} 。在
如果您只想
sum
您的数据,那么np.sum
可以:或者,您可以使用^{} 来获得符合您需要的格式的数据(
^{pr2}$Counter
性能不高,因此请注意这一点):或者定义自定义函数以精确获取所需的内容:
相关问题 更多 >
编程相关推荐