Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何量化大熊猫的bin迁移?_Python_Pandas_Statistics - Fatal编程技术网

Python 如何量化大熊猫的bin迁移?

Python 如何量化大熊猫的bin迁移?,python,pandas,statistics,Python,Pandas,Statistics,我有两个相同数字的不同计算,我想研究从计算A迁移到B之后的bin迁移。是否有一个一行程序可以为我提供数据帧中两列bin之间迁移概率的矩阵? 例如: 这是一个数据帧: A B 0 1 1 1 1 1 2 1 2 3 2 2 4 2 2 5 2 2 6 3 1 7 3 3 8 3 3 df=pd.DataFrame({ ‘A’:[1.1,1.3,1,2.2,2.1,2.3,3,3.1,3.2], ‘B’:[1.2,1.1,2.2,2.1,2,2.1,1.1,3.

我有两个相同数字的不同计算,我想研究从计算A迁移到B之后的bin迁移。是否有一个一行程序可以为我提供数据帧中两列bin之间迁移概率的矩阵?

例如:

这是一个数据帧:

A B 0 1 1 1 1 1 2 1 2 3 2 2 4 2 2 5 2 2 6 3 1 7 3 3 8 3 3
df=pd.DataFrame({
‘A’:[1.1,1.3,1,2.2,2.1,2.3,3,3.1,3.2],
‘B’:[1.2,1.1,2.2,2.1,2,2.1,1.1,3.4,3.2]})
我可以做一个简单的分类:

df['A']=np.floor(df['A']).astype(int)
df['B']=np.floor(df['B']).astype(int)
因此,考虑到这个数据帧:

A B 0 1 1 1 1 1 2 1 2 3 2 2 4 2 2 5 2 2 6 3 1 7 3 3 8 3 3 A B 0 1 1 1 1 1 2 1 2 3 2 2 4 2 2 5 2 2 6 3 1 7 3 3 8 3 3 我想建立这个矩阵:

1 2 3 --------------- 1| 2/3 1/3 0 2| 0 1 0 3| 1/3 0 2/3 1 2 3 --------------- 1| 2/3 1/3 0 2| 0 1 0 3| 1/3 0 2/3 我们可以看到,它显示了箱子之间的迁移概率(好的,“频率”)

  • 1保持1的概率为2/3,变为2的概率为1/3
  • 2保留2的概率为1
  • 3变为1的概率为1/3,保持为3的概率为2/3
我可能可以手工计算迁移概率,但经验告诉我,总有一种“熊猫一号”可以更干净、更快地完成工作

方法将这两列视为变量,以在它们之间构建一个协同分解矩阵。那不是我要找的。我正在寻找值之间的相关性。

试试这个

df_confusion = pd.crosstab(df['A'], df['B'])/df['A'].nunique()
O/p:


试着看看Pysals对马尔可夫转移矩阵的实现:这是一条直线还是一条“半直线”?