在唯一列值的熊猫上应用计数器[重复]

Posted

技术标签:

【中文标题】在唯一列值的熊猫上应用计数器[重复]【英文标题】:Applying counter on pandas on unique columns values [duplicate] 【发布时间】:2020-02-02 18:01:38 【问题描述】:

我的数据是这样的

同一用户可以有多个班次 ID。所以在nurse_id 列中我有重复的ID。

我想在 new_state 上为独特的护士创建计数器。

目前我做的时候

Counter(df["new_stat"])

它给了

Counter('D': 15123, 'R': 29300, 'not_active': 2581, 'N': 21455)

但它也会计算 ID 的重复值。

如何在new_stat 上为唯一的nurse_id 创建计数器?

【问题讨论】:

请复制并粘贴您的数据框...也许您可以使用df.groupby(['nurse_id,'last_login'])['new_stat'].count() 【参考方案1】:

Pandas 解决方案是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'))

【讨论】:

以上是关于在唯一列值的熊猫上应用计数器[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何按列值的计数进行分组并对其进行排序?

Groupby - 具有重复值的熊猫 df 计数

当日期不唯一时,在熊猫中按日期分组后计数观察值

根据条件组合熊猫行[重复]

将列值分配给熊猫数据框中的唯一行[重复]

sql:选择由另一列分组的两列值的计数并获得两个计数的比率