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.
为了简单起见,我将这段代码用作示例:
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.