熊猫通过辅助信息进行计数

我有以下数据框:


df = pd.DataFrame([{'file_name': 'my_movie.mov', 'status': 'final'}, {'file_name': 'his_movie.mov', 'status': 'source'}, {'file_name': 'her_movie.mov', 'status': 'source'}])


       file_name  status

0   my_movie.mov   final

1  his_movie.mov  source

2  her_movie.mov  source

我想做这样的事情:


df.groupby('status')[['status', 'file_name', 'count']]

file_name可以是任何 file_name 值,count 是count记录数。答案是这样的:


status         file_name              count

final          my_movie.mov           1

source         his_movie.mov          2

在 SQL(使用 mysql 方言)中我会这样做:


SELECT status, file_name, COUNT(*) FROM df GROUP BY status

我将如何在熊猫中做到这一点?


我得到的最接近的是这个,但这没有添加到我想要的 file_name 中:


>>> df[['new__status', 'file_name']].groupby('new__status').count().sort_values('file_name', ascending=False)


郎朗坤
浏览 98回答 2
2回答

幕布斯6054654

尝试这个df.groupby('status').agg({'file_name': 'first', 'status': 'size'}).rename(columns={'status': 'count'}).reset_index()

莫回无

使用series.groupby NamedAggdf_agg = df.groupby('status').file_name.agg(file_name='first', count='count').reset_index()Out[393]:   status      file_name  count0   final   my_movie.mov      11  source  his_movie.mov      2
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python