Python 如何在Pandas中的一组空列上执行groupby?

Python 如何在Pandas中的一组空列上执行groupby?,python,group-by,pandas,Python,Group By,Pandas,我偶然发现了一件关于熊猫的案子。我正在尝试使用agg fn,但没有进行分组。假设我希望在整个数据帧上进行聚合,即 from pandas import * DF = DataFrame( randn(5,3), index = list( "ABCDE"), columns = list("abc") ) DF.groupby([]).agg({'a' : np.sum, 'b' : np.mean } ) # <--- does not work 从导入* DF=数据帧(randn(5

我偶然发现了一件关于熊猫的案子。我正在尝试使用agg fn,但没有进行分组。假设我希望在整个
数据帧上进行聚合,即

from pandas import *
DF = DataFrame( randn(5,3), index = list( "ABCDE"), columns = list("abc") )
DF.groupby([]).agg({'a' : np.sum, 'b' : np.mean } ) # <--- does not work
从导入*
DF=数据帧(randn(5,3),索引=列表(“ABCDE”),列=列表(“abc”))

DF.groupby([]).agg({'a':np.sum,'b':np.mean})#也不是很好,但是对于这种情况,如果传递一个返回True的函数,至少不需要更改
DF

>>> from pandas import *
>>> df = DataFrame( np.random.randn(5,3), index = list( "ABCDE"), columns = list("abc") )
>>> df.groupby(lambda x: True).agg({'a' : np.sum, 'b' : np.mean } )
             a         b
True  1.836649 -0.692655
>>> 
>>> df['total'] = 'total'
>>> df.groupby(['total']).agg({'a' : np.sum, 'b' : np.mean } ) 
              a         b
total                    
total  1.836649 -0.692655

您可以使用各种内置项,而不是
lambda x:True
,但它们不太明确,只能意外工作。

使用类似的
数据帧。聚合方法是一个好主意。在此处创建问题:


Cool@Wes MCKinney-也许你也可以让DF.groupby([])返回DF?ThxI还注意到,对于某些函数,如
np.std
,这会给出一个错误:
索引器:0-d数组不能被索引。
。这似乎扼杀了熊猫系列的额外结构。如果您使用
lambda x:np.std(x.values)
作为传入函数,这将修复它。但这似乎是熊猫的责任。也许是一种“尝试-捕获”的方法,如果它不能按原样工作,那么在放弃之前也可以尝试将其应用于column.values?避免这种情况可能有很好的理由;只是一个建议。你能报告一个重现你所看到的问题吗?