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

我的数据看起来像这样

http://img3.mukewang.com/62a8533c0001fd5315100513.jpg

同一用户可以有多个班次 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


回首忆惘然
浏览 106回答 1
1回答

青春有我

熊猫解决方案是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')})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python