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

2024-04-20 13:10:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个熊猫系列如下:

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

最好的方法是什么


Tags: 数据方法importpandasas频率seriespd
1条回答
网友
1楼 · 发布于 2024-04-20 13:10:11

您可以在序列和序列的^{}之间使用^{}

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

相关问题 更多 >