我有一个如下所示的熊猫数据框:
Customer Id year
0 1510220024 2017
1 1510270013 2017
2 1511160047 2017
3 1512100014 2017
4 1603180006 2017
5 1605030030 2017
6 1605160013 2017
7 1606060008 2017
8 1510220024 2018
9 1606270014 2017
10 1608080011 2017
11 1608090002 2017
12 1511160047 2018
13 1606270014 2018
我想根据上述数据框构建以下矩阵:
2017 2018
2017 11 3
2018 3 3
此矩阵表明,2017年共有11个客户,其中3个也出现在2018年,依此类推。实际上,我有7年的数据,所以它将是7x7矩阵。我正在努力一段时间,但无法正确解决这个问题。
答案 0 :(得分:5)
merge
+ crosstab
:
m = df.merge(df, left_on='Customer Id', right_on='Customer Id')
pd.crosstab(m.year_x, m.year_y)
year_y 2017 2018
year_x
2017 11 3
2018 3 3