我的數據看起來像這樣同一用戶可以有多個班次 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
提交
取消