微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我在大熊猫的一个角落里打.我试图使用agg fn但没有做groupby.假设我想要对整个数据帧进行聚合,即

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.agg({‘a’…})也不起作用.

我的解决方法是做DF [‘Total’] =’Total’然后做一个DF.groupby([‘Total’])但这看起来有点人为.

有没有人有更清洁的解决方案?

解决方法:

它也不是那么好,但对于这种情况,如果你传递一个返回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,但它们不那么明确,只是偶然工作.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐