创建计数功能
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”和连接“用户”的次数
现在对于机器学习算法,最好的方法是什么?
甚至是它们的组合
- 每行显示最大连接数:
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
- 每行显示连接数:
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
然后 transform
和 cumcount
:
# 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
我有一个 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”和连接“用户”的次数
现在对于机器学习算法,最好的方法是什么? 甚至是它们的组合
- 每行显示最大连接数:
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 |
- 每行显示连接数:
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
然后 transform
和 cumcount
:
# 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