我的數(shù)據(jù)看起來(lái)像這樣同一用戶可以有多個(gè)班次 ID。所以在nurse_id 列中我有重復(fù)的ID。我想在 new_state 上為獨(dú)特的護(hù)士創(chuàng)建計(jì)數(shù)器。目前當(dāng)我做Counter(df["new_stat"])它給Counter({'D': 15123, 'R': 29300, 'not_active': 2581, 'N': 21455})但它也會(huì)計(jì)算 ID 的重復(fù)值。如何new_stat為 unique創(chuàng)建計(jì)數(shù)器nurse_id?
1 回答

青春有我
TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊
熊貓解決方案是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')
如果需要每個(gè)組的 Counters 對(duì)象,可以使用帶有Series
構(gòu)造函數(shù)的字典理解:
pd.Series({k: Counter(v['new_stat']) for k, v in df.groupby('nurse_id')})
添加回答
舉報(bào)
0/150
提交
取消