Python 计算系列值之间的过渡频率矩阵

Python 计算系列值之间的过渡频率矩阵,python,pandas,Python,Pandas,我有一个熊猫系列如下: import pandas as pd pd.Series(['A', 'B', 'B', 'B', 'C', 'A']) 我试图计算这些值之间的转换频率,这样输出数据帧应该如下所示: State A B C A 0 1 0 B 0 2 1 C 1 0 0 最好的方法是什么?您可以在系列和系列之间使用: 如果要删除轴的名称,可以使用rename\u axis: pd

我有一个熊猫系列如下:

import pandas as pd
pd.Series(['A', 'B', 'B', 'B', 'C', 'A'])
我试图计算这些值之间的转换频率,这样输出数据帧应该如下所示:

 State    A    B    C
 A        0    1    0
 B        0    2    1
 C        1    0    0
最好的方法是什么?

您可以在系列和系列之间使用:

如果要删除轴的名称,可以使用
rename\u axis

pd.crosstab(s, s.shift(-1)).rename_axis(index=None, columns=None)
   A  B  C
A  0  1  0
B  0  2  1
C  1  0  0

这是非常简单和明确的。非常感谢你!
pd.crosstab(s, s.shift(-1)).rename_axis(index=None, columns=None)
   A  B  C
A  0  1  0
B  0  2  1
C  1  0  0