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

在唯一列值上对 pandas 应用计数器

在唯一列值上对 pandas 应用计数器

回首忆惘然 2022-06-14 17:21:40
我的数据看起来像这样同一用户可以有多个班次 ID。所以在nurse_id 列中我有重复的ID。我想在 new_state 上为独特的护士创建计数器。目前当我做Counter(df["new_stat"])它给Counter({'D': 15123, 'R': 29300, 'not_active': 2581, 'N': 21455})但它也会计算 ID 的重复值。如何new_stat为 unique创建计数器nurse_id?
查看完整描述

1 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

熊猫解决方案是SeriesGroupBy.value_counts

df.groupby('nurse_id')['new_stat'].value_counts().reset_index(name='count')

或者DataFrameGroupBy.size

df.groupby(['nurse_id','new_stat']).size().reset_index(name='count')

如果需要每个组的 Counters 对象,可以使用带有Series构造函数的字典理解:

pd.Series({k: Counter(v['new_stat']) for k, v in df.groupby('nurse_id')})


查看完整回答
反对 回复 2022-06-14
  • 1 回答
  • 0 关注
  • 105 浏览
慕课专栏
更多

添加回答

举报

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