标签: 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
什么是最好的方法?
答案 0 :(得分:1)
您可以在系列与系列的crosstab之间使用shift:
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:
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