以下是一个按组计算唯一分类特征的滚动计数的示例代码:
import pandas as pd
# 创建示例数据
data = {
'group': ['A', 'A', 'A', 'B', 'B', 'B'],
'category': ['X', 'Y', 'X', 'Y', 'Z', 'X']
}
df = pd.DataFrame(data)
# 按组对分类特征进行滚动计数
df['rolling_count'] = df.groupby('group')['category'].transform(lambda x: x.expanding().apply(lambda y: y.nunique()))
print(df)
这个示例代码中,我们首先创建了一个包含group
和category
两列的示例数据的数据帧df
。
然后,我们使用df.groupby('group')['category']
将数据帧按group
列进行分组。接下来,我们使用transform
方法将每个组的category
列传递给一个lambda函数。
在lambda函数中,我们使用expanding()
方法获取到当前行及之前所有行的数据,并使用apply(lambda y: y.nunique())
计算每个滚动窗口内唯一值的数量。
最后,我们将计算结果赋值给新的列rolling_count
。
输出结果如下:
group category rolling_count
0 A X 1.0
1 A Y 2.0
2 A X 2.0
3 B Y 1.0
4 B Z 2.0
5 B X 3.0
可以看到,rolling_count
列包含了按组计算的滚动计数结果。
上一篇:按组计算特定值的两行之间的案例数
下一篇:按组计算唯一值的数量