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

给定另一列值,计算一列上一次性出现的值

给定另一列值,计算一列上一次性出现的值

哔哔one 2023-07-05 11:12:06
所以,我有这样的数据集: df=Id    Pos        Salary  year                               00    Chief      2000    200301    Assistant  1800    200302    Assistant  1950    200303    Analyst    5200    200304    Guard      1000    200305    Chief      2500    200406    Service     800    200307    Exec      10000    200508    Exec      12000    200509    Sales      1100    2007Pos我被要求计算2003 年只有一个人持有多少个“ ”。(在本例中,该数字为 4,因为 pos“助理”由 2 个人持有)通过跑步(df.duplicated(subset=['Pos'], keep=False)).sum()year我在不考虑列“ ”的情况下获得了单次出现的计数我试过(df.duplicated(subset=['Pos', 'year'], keep=False)).sum()pos但随后它会计算和的单次出现次数years。(总共 6 个:4 个用于所有年份中仅由一个人担任的职位,加上 2 个用于“年份”中不重复的行)我相信我需要使用 df.groupby,但我不确定语法。有任何想法吗?提前致谢
查看完整描述

1 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

year == 2003在查找重复项之前,您可以先提取行的子集。
此外,您还需要在计算总和之前反转结果,因为duplicated会将重复的出现标记为 True,而您需要唯一出现的总和。
尝试这个:
(~(df[df.year==2003].duplicated(subset=['Pos'], keep=False))).sum()

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

添加回答

举报

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