计算熊猫系列值之间的跃迁频率矩阵

时间:2020-06-04 18:48:40

标签: 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

什么是最好的方法?

1 个答案:

答案 0 :(得分:1)

您可以在系列与系列的crosstab之间使用shift

s = pd.Series(['A', 'B', 'B', 'B', 'C', 'A'])

print (pd.crosstab(s, s.shift(-1)))
col_0  A  B  C
row_0         
A      0  1  0
B      0  2  1
C      1  0  0

,如果要删除轴的名称,可以使用rename_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
相关问题