计算 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

最好的方法是什么?


小怪兽爱吃肉
浏览 71回答 1
1回答

小唯快跑啊

您可以crosstab在系列和系列之间使用shift:s = pd.Series(['A', 'B', 'B', 'B', 'C', 'A'])print (pd.crosstab(s, s.shift(-1)))col_0  A  B  Crow_0         A      0  1  0B      0  2  1C      1  0  0如果你想删除轴的名称,你可以使用rename_axis:pd.crosstab(s, s.shift(-1)).rename_axis(index=None, columns=None)   A  B  CA  0  1  0B  0  2  1C  1  0  0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python