以下是按类别分组的累积不同计数的解决方法的示例代码:
import pandas as pd
# 创建示例数据集
data = {'Category': ['A', 'A', 'B', 'B', 'A', 'C', 'C', 'C'],
'Value': [1, 2, 3, 4, 5, 6, 7, 8]}
df = pd.DataFrame(data)
# 按Category分组,并计算每个组内不同值的累计计数
df['CumulativeCount'] = df.groupby('Category')['Value'].transform(lambda x: x.nunique().cumsum())
print(df)
这段代码首先导入了pandas
库,并创建了一个包含分类和值的示例数据集。然后,使用groupby
方法按Category分组,并使用transform
方法应用一个lambda函数,该函数计算每个组内不同值的累计计数。最后,将计算结果存储到一个新的列CumulativeCount中,并打印整个数据集。
执行上述代码后,将得到以下输出:
Category Value CumulativeCount
0 A 1 1
1 A 2 1
2 B 3 1
3 B 4 1
4 A 5 2
5 C 6 1
6 C 7 1
7 C 8 1
可以看到,CumulativeCount列显示了每个组内不同值的累计计数。在示例数据集中,第一次遇到的值将具有累计计数为1,而后续遇到的不同值将递增计数。