创建计数功能

Create A count Features right

我有一个 table 这样的:

PC USER Period
A U1 2020/01
A U2 2020/02
A U3 2020/03
A U4 2020/04
B U1 2020/01
B U2 2020/02
B U2 2020/03

我需要创建一个“功能计数”来检查找到“PC”和连接“用户”的次数

现在对于机器学习算法,最好的方法是什么? 甚至是它们的组合

  1. 每行显示最大连接数:
PC USER Period Max Con Per PC Max Con Per USER
A U1 2020/01 4 2
A U2 2020/02 4 3
A U3 2020/03 4 1
A U4 2020/04 4 1
B U1 2020/01 3 2
B U2 2020/02 3 3
B U2 2020/03 3 3
  1. 每行显示连接数:
PC USER Period Max Con Per PC Max Con Per USER
A U1 2020/01 1 1
A U2 2020/02 2 1
A U3 2020/03 3 1
A U4 2020/04 4 1
B U1 2020/01 1 2
B U2 2020/02 2 2
B U2 2020/03 3 3

您可以使用 groupby 然后 transformcumcount:

# Use lazy groups
gpc = df.groupby('PC')['PC']
gus = df.groupby('USER')['Period']

df['Max Con Per PC'] = gpc.transform('size')
df['Count Con Per PC'] = gpc.cumcount() + 1
df['Max Con Per USER'] = gus.transform('size')
df['Count Con Per USER'] = gus.cumcount() + 1

输出:

>>> df
  PC USER   Period  Max Con Per PC  Count Con Per PC  Max Con Per USER  Count Con Per USER
0  A   U1  2020/01               4                 1                 2                   1
1  A   U2  2020/02               4                 2                 3                   1
2  A   U3  2020/03               4                 3                 1                   1
3  A   U4  2020/04               4                 4                 1                   1
4  B   U1  2020/01               3                 1                 2                   2
5  B   U2  2020/02               3                 2                 3                   2
6  B   U2  2020/03               3                 3                 3                   3