首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫pivot_table不分组

问熊猫pivot_table不分组
EN

Stack Overflow用户
提问于 2015-07-01 18:42:55
回答 2查看 7.1K关注 0票数 2

在不提供分组的情况下,使用pandas.pivot_table计算整个表上的聚合函数的最佳方法是什么?

例如,如果我想将A、B、C的和计算成一个有一行的表,而不按任何列进行分组:

代码语言:javascript
复制
>>> x = pd.DataFrame({'A':[1,2,3],'B':[8,7,6],'C':[0,3,2]})
>>> x
   A  B  C
0  1  8  0
1  2  7  3
2  3  6  2
>>> x.pivot_table(values=['A','B','C'],aggfunc=np.sum)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/tool/pandora64/.package/python-2.7.5/lib/python2.7/site-packages/pandas/tools/pivot.py", line 103, in pivot_table
    grouped = data.groupby(keys)
  File "/tool/pandora64/.package/python-2.7.5/lib/python2.7/site-packages/pandas/core/generic.py", line 2434, in groupby
    sort=sort, group_keys=group_keys, squeeze=squeeze)
  File "/tool/pandora64/.package/python-2.7.5/lib/python2.7/site-packages/pandas/core/groupby.py", line 789, in groupby
    return klass(obj, by, **kwds)
  File "/tool/pandora64/.package/python-2.7.5/lib/python2.7/site-packages/pandas/core/groupby.py", line 238, in __init__
    level=level, sort=sort)
  File "/tool/pandora64/.package/python-2.7.5/lib/python2.7/site-packages/pandas/core/groupby.py", line 1622, in _get_grouper
    raise ValueError('No group keys passed!')
ValueError: No group keys passed!

另外,我想使用定制aggfunc,上面的np.sum只是一个例子。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-06 01:19:29

我认为您是在问如何将函数应用于数据框架的所有列:要执行此操作,请调用数据帧的apply方法:

代码语言:javascript
复制
def myfunc(col):
   return np.sum(col)

x.apply(myfunc)

Out[1]: 
A     6
B    21
C     5
dtype: int64
票数 2
EN

Stack Overflow用户

发布于 2022-05-06 12:22:51

我也犯了同样的错误,我在Pandas数据帧上使用pivot_table参数,

代码语言:javascript
复制
import numpy as np
# Pivot for mean weekly_sales for each store type
mean_sales_by_type = sales.pivot_table(values='weekly_sales')

# Print mean_sales_by_type
print(mean_sales_by_type)

,这里是错误:

代码语言:javascript
复制
File "<stdin>", line 889, in __init__
grouper, exclusions, obj = get_grouper(
File "<stdin>", line 896, in get_grouper
raise ValueError("No group keys passed!")
ValueError: No group keys passed!

最后,通过指定pivot_table函数的索引参数(后面的值)来修复它。

代码语言:javascript
复制
mean_sales_by_type = sales.pivot_table(values='weekly_sales',index='type')

在你的情况下,试试这个:-

代码语言:javascript
复制
x.pivot_table(values=['A','B','C'],**value=[]**,aggfunc=np.sum)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31169229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档