在 pandas 矩阵中创建 rfm
create in pandas matrix rfm
我正在 pandas 中计算 rfv table,但我找不到教程或 post 来帮助我构建图形所需的矩阵。
The graph i want using this base from matplot
每个方块是该位置的客户数。
我现在使用的数据框有以下列:
COD_CLIENT
RECENCY
FRE_VAL
R
FV
RFV
RFV_Score
RFV_Level
59
87
45.45
3
3
33
6
Potential
1846
75
6.00
3
2
32
5
Seleepers
4380
92
37.95
2
3
23
5
Seleepers
object
int64
float64
int32
int32
int32
int64
object
你们建议我做什么?
我已经尝试使用 R 和 FV 作为列和行并使用函数,但这很糟糕。
您想计算每个 (R, FV) 对的行数,因此您可以尝试对之前的结果使用 pandas.DataFrame.groupby
and then counting the number of elements in each group by using .size()
。生成的代码应如下所示:
import pandas as pd
>> df = ... # Assuming your DataFrame has the format you showed
>> df.groupby(["R", "FV"]).size()
R FV
1 1 2
2 1
3 1
2 1 1
2 1
dtype: int64
>> df.groupby(["R", "FV"]).size().unstack() # Add unstack to format the result
FV 1 2 3
R
1 2.0 1.0 1.0
2 1.0 1.0 NaN
这应该符合您的预期输出。
我正在 pandas 中计算 rfv table,但我找不到教程或 post 来帮助我构建图形所需的矩阵。 The graph i want using this base from matplot 每个方块是该位置的客户数。
我现在使用的数据框有以下列:
COD_CLIENT | RECENCY | FRE_VAL | R | FV | RFV | RFV_Score | RFV_Level |
---|---|---|---|---|---|---|---|
59 | 87 | 45.45 | 3 | 3 | 33 | 6 | Potential |
1846 | 75 | 6.00 | 3 | 2 | 32 | 5 | Seleepers |
4380 | 92 | 37.95 | 2 | 3 | 23 | 5 | Seleepers |
object | int64 | float64 | int32 | int32 | int32 | int64 | object |
你们建议我做什么? 我已经尝试使用 R 和 FV 作为列和行并使用函数,但这很糟糕。
您想计算每个 (R, FV) 对的行数,因此您可以尝试对之前的结果使用 pandas.DataFrame.groupby
and then counting the number of elements in each group by using .size()
。生成的代码应如下所示:
import pandas as pd
>> df = ... # Assuming your DataFrame has the format you showed
>> df.groupby(["R", "FV"]).size()
R FV
1 1 2
2 1
3 1
2 1 1
2 1
dtype: int64
>> df.groupby(["R", "FV"]).size().unstack() # Add unstack to format the result
FV 1 2 3
R
1 2.0 1.0 1.0
2 1.0 1.0 NaN
这应该符合您的预期输出。