我的数据看起来像这样同一用户可以有多个班次 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')
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')})
添加回答
举报
0/150
提交
取消