我已经对我的数据框执行了分组。
grouped = data_df.groupby(['Cluster','Visit Number Final'])['Visitor_ID'].count()
我得到以下输出:
data_df.groupby(['Cluster','Visit Number Final'])['Visitor_ID'].count()
输出[81]:
Cluster Visit Number Final
0 1 21846
2 1485
3 299
4 95
5 24
6 8
7 3
1 1 33600
2 2283
3 404
4 117
5 34
6 7
2 1 5858
2 311
3 55
4 14
5 6
6 3
7 1
3 1 19699
2 1101
3 214
4 78
5 14
6 8
7 3
4 1 10086
2 344
3 59
4 14
5 3
6 1
Name: Visitor_ID, dtype: int64
现在我想压缩访问次数最终>3的行(添加一个新行,其中包含访问次数最终4、5、6的总和)。我正在尝试 groupby.filter 但没有得到预期的输出。 我的最终输出应该类似于
Cluster Visit Number Final
0 1 21846
2 1485
3 299
>=4 130
1 1 33600
2 2283
3 404
>=4 158
2 1 5858
2 311
3 55
>=4 24
3 1 19699
2 1101
3 214
>=4 103
4 1 10086
2 344
3 59
>=4 18
最佳答案
最简单的方法是在对数据帧进行分组之前替换大于 3 的“最终访问数”值:
df.loc[df['Visit Number Final'] > 3, 'Visit Number Final'] = '>=4'
df.groupby(['Cluster','Visit Number Final'])['Visitor_ID'].count()
关于python - 如何在pandas中groupby之后压缩行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54787448/