首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫有条件计数

熊猫有条件计数
EN

Stack Overflow用户
提问于 2022-02-13 22:12:42
回答 2查看 57关注 0票数 0

我在试图计算相同名称的变量时遇到了问题。问题是:我有一张名单,上面写着我所有员工的名字,我需要数一数他们接受了多少次培训,但是这些培训有不同的分类:“商业”、"Funcional“和其他.

我的一个专栏是“名称”,另一个是“培训”。如何过滤这些培训并按名称进行聚合

代码语言:javascript
复制
   import pandas as pd
   import numpy as np

   xls = pd.ExcelFile('BASE_Indicadores_treinamento_2021 - V3.xlsx')

   df = pd.read_excel(xls, 'Base')
   display(df)

   df2 = df.groupby("Nome").agg({'Eixo':'count'}).reset_index()
   display(df2)

我得到的是每个名字的培训总数,但我需要在培训中的所有类别的计数(有5个)。有人知道我需要做什么吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-13 22:51:10

df.groupby("Nome").agg('count')应该给出每个人的培训总数。df.groupby("Nome","Eixo").agg({'Eixo':' count '})应该给出每个人每次训练的计数。

票数 1
EN

Stack Overflow用户

发布于 2022-02-13 22:55:02

问题解决了!

以下是我所做的

代码语言:javascript
复制
import pandas as pd
import numpy as np

xls = pd.ExcelFile('BASE_Indicadores_treinamento_2021 - V3.xlsx')

df = pd.read_excel(xls, 'Base')
display(df)

filt_funcional = df['Eixo'] == 'Funcional'
filt_comercial = df['Eixo'] == 'Comercial'
filt_liderança = df['Eixo'] == 'Liderança'
filt_negocio = df['Eixo'] == 'Negócio'
filt_obr_cert = df['Eixo'] == 'Obrigatórios e Certificações'

df.loc[filt_funcional]['Nome'].value_counts()

比我想象的容易多了!

给我学分,我只做了这个视频的bc:https://www.youtube.com/watch?v=txMdrV1Ut64

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71105302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档