将数据从列向量转换为矩阵
Transform data from column vector to matrix
我得到了一个看起来像这样的 xlsx 文件:
Label-Label Data
A-B 1
C-D 5
A-D 4
B-F 10
H-I 12
所以我的目标是使用“Label-Label”列通过在“-”上拆分使该数据成为矩阵。我的意思是从上面的数据到这个:
B D F I
A 1 4 0 0
C 0 5 0 0
B 0 0 10 0
H 0 0 0 12
目标是使每个(行、列)对应于“行-列”,即“标签-标签”。任何不在初始数据集中的行列组合都将在此处设置为 0,并且初始数据中的任何重复行值都存储在矩阵数据(例如 A)的同一行中。同样,任何重复列值都将它们的值存储在矩阵中的同一列中(例如 D)。
首先读取 pandas 数据帧,然后执行 pivot_table
:
(df['Label-Label'].str.split('-', expand=True)
.assign(data=df.Data)
.pivot_table('data',0,1, fill_value=0))
1 B D F I
0
A 1.0 4.0 0.0 0.0
B 0.0 0.0 10.0 0.0
C 0.0 5.0 0.0 0.0
H 0.0 0.0 0.0 12.0
我得到了一个看起来像这样的 xlsx 文件:
Label-Label Data
A-B 1
C-D 5
A-D 4
B-F 10
H-I 12
所以我的目标是使用“Label-Label”列通过在“-”上拆分使该数据成为矩阵。我的意思是从上面的数据到这个:
B D F I
A 1 4 0 0
C 0 5 0 0
B 0 0 10 0
H 0 0 0 12
目标是使每个(行、列)对应于“行-列”,即“标签-标签”。任何不在初始数据集中的行列组合都将在此处设置为 0,并且初始数据中的任何重复行值都存储在矩阵数据(例如 A)的同一行中。同样,任何重复列值都将它们的值存储在矩阵中的同一列中(例如 D)。
首先读取 pandas 数据帧,然后执行 pivot_table
:
(df['Label-Label'].str.split('-', expand=True)
.assign(data=df.Data)
.pivot_table('data',0,1, fill_value=0))
1 B D F I
0
A 1.0 4.0 0.0 0.0
B 0.0 0.0 10.0 0.0
C 0.0 5.0 0.0 0.0
H 0.0 0.0 0.0 12.0