我有一个用户数据框架,这些用户在一个月内执行特定任务的次数不多。我有一些这样的数据。(无法共享真实数据,因此生成一个虚拟df,如下所示)
df = pd.DataFrame(np.random.randint(1, 12,size=(100, 2)), columns=list('AB'))
df['Month'] = df.apply(lambda x: f"{x['A']}-2020", axis=1)
df['id'] = "UID"+ df['B'].astype(str)
df = df.drop(columns=['A', 'B'])
df.head(10)
如下所示:
Month id
0 4-2020 UID3
1 5-2020 UID8
2 9-2020 UID3
3 5-2020 UID6
4 8-2020 UID7
5 8-2020 UID5
6 7-2020 UID11
7 10-2020 UID5
8 1-2020 UID10
9 4-2020 UID6
我想知道每月UID的数量,不管它是哪个id
df.groupby(["Month", "id"]).size().reset_index(name='Count')
它应该显示-
Month id
'1-2020' 3
'2-2020' 5
'3-2020' n
...
一年中的所有月份都是如此。不知道如何进行分组
可以将^{} 与^{} 结合使用
代码如下:
结果如下所示:
如果需要上述输出:
相关问题 更多 >
编程相关推荐