Pandas: 单个列上有多个聚合但显示不相邻

Pandas: More than one aggregate on a single column but display not adjacent

我正在努力实现以下目标。

'''
SELECT genre
    , sum(price)
    , count(*)
    , avg(price) 
FROM books 
GROUP BY genre
'''

这个有效:

books.groupby('genre').agg({'price': [np.sum, np.mean], 'genre': np.size})

这也有效:

books.groupby('genre').agg({'price': [np.sum, np.mean, np.size]})

但是,上面的总和和均值聚合是相邻的,这是我不想要的。两者之间应该有'Count'。

如果我想显示两者之间的'Count',我无法理解确切的语法。你能帮忙吗?

谢谢。

亲切的问候,

马诺杰。

公平的问题...我不知道如何从 get-go...但我想我会在事后根据需要重新排列您的列:

df_agg=df.groupby('genre').agg({'price': [np.sum, np.mean], 'genre': np.size})

cols2=[('price','sum'),('genre','size'),('price','mean')]
df_agg[cols2]