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]
我正在努力实现以下目标。
'''
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]