我有一个数据框,我想根据它属于某个类别和某个时期的条件计算一个 id 出现的次数。我在这里有一个简单版本的数据框:
我想编写一个脚本,该脚本能够计算在“期间 1”期间以“1”类别出现的次数,例如 ID“1”
所以输出会是这样的:
计数 = 2
因为 ID 1 在类别 1 和期间 1 中出现了两次。
请注意,我不想在脚本中明确命名 ID,因为我想计算其他 ID 的出现次数,而不仅仅是 ID '1'。
您正在谈论所有条件都为真的地方,因此len数据框就是答案:
len(df[(df['ID'] == 1) & (df['category'] == 1) & (df['period'] == 'period 1')])
或者
(df['ID'].eq(1) & df['category'].eq(1) & df['period'].eq('period 1')).sum()
您可以使用 pandas pivot 函数和聚合函数提及计数
pd.pivot_table(df, index=['Category','period'], values='ID', aggfunc='count').reset_index()