python 中纵坐标对出现的矩阵

Matrix of occurrences of ordinate pair in python

为了简单起见,我将这段代码用作示例:

import pandas as pd

data = {'x': [1, 2, 3, 1, 2, 1], 'y': [1, 2, 3, 1, 2, 2]}  

# create DataFrame  
df = pd.DataFrame(data)

#count how many times each tuple (x,y) happens and pu the value in n
occurrence= df.groupby(['x', 'y']).size().sort_values(ascending=False)

occurrence_df=occurrence.to_frame() 

occurrence_df.reset_index(inplace=True) 

occurrence_df.columns = [ 'x','y','n'] #name the columns

我试图制作这样的矩阵: example of more or less how will be

X轴:x各有不同的值。 Y 轴:每个不同的 Y 值,以及每个单元格与元组发生的次数

我认为这是最像我想要的热图。

这几天我都在苦苦思索,非常感谢你的帮助。

你要的是confusion matrix.

import pandas as pd

data = {'x': [1, 2, 3, 1, 2, 1], 'y': [1, 2, 3, 1, 2, 2]}

# create DataFrame
df = pd.DataFrame(data)

df_confusion_matrix = pd.crosstab(df["y"], df["x"])
print(df_confusion_matrix)

预期结果

x  1  2  3
y         
1  2  0  0
2  1  2  0
3  0  0  1

您可以这样阅读(这正是您提供的格式):

          x
       1  2  3
      ---------- 
    1 | 2  0  0
y   2 | 1  2  0
    3 | 0  0  1

还有很多其他方法。你可能想看看 this thread.