为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

郎朗坤 2023-07-11 16:25:15
我有以下数据框: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  status0   my_movie.mov   final1  his_movie.mov  source2  her_movie.mov  source我想做这样的事情:df.groupby('status')[['status', 'file_name', 'count']]file_name可以是任何 file_name 值,count 是count记录数。答案是这样的:status         file_name              countfinal          my_movie.mov           1source         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)
查看完整描述

2 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

尝试这个

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


查看完整回答
反对 回复 2023-07-11
?
莫回无

TA贡献1865条经验 获得超7个赞

使用series.groupby NamedAgg


df_agg = df.groupby('status').file_name.agg(file_name='first', count='count').reset_index()


Out[393]:

   status      file_name  count

0   final   my_movie.mov      1

1  source  his_movie.mov      2


查看完整回答
反对 回复 2023-07-11
  • 2 回答
  • 0 关注
  • 72 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信