【发布时间】:2019-09-23 20:23:32
【问题描述】:
我有两个数据,一个有列:
df1 =
ID As Hs Ts
A A_1 A_6 A_7
B B_1
C C_1 C10
D D_1
E E_1,E_2 E_5 E_4
F F_1,F_4
一对分数:
df2 =
ID1 1 ID2 2 SCORE
A A_1 B B_1 1
A A_6 B B_1 0.5
A A_7 B B_1 0.3
A A_1 C C_1 1
A A_6 C C_1 0.4
A A_7 C C_1 0.3
A A_1 C C_10 0.3
A A_6 C C_10 0.5
A A_7 C C_10 0.3
A A_1 D D_1 1
A A_6 D D_1 0.2
A A_7 D D_1 0.3
A A_1 E E_1 1
A A_6 E E_1 0.5
A A_7 E E_1 0.4
A A_1 E E_2 0.8
A A_6 E E_2 0.2
A A_7 E E_2 0.5
A A_1 E E_5 0.3
A A_6 E E_5 0.3
A A_7 E E_5 0.6
A A_1 E E_4 0.1
A A_6 E E_4 0.4
A A_7 E E_4 0.6
A A_1 F F_1 0.3
A A_6 F F_1 0.3
A A_7 F F_1 0.6
A A_1 F F_4 0.1
A A_6 F F_4 0.4
A A_7 F F_4 0.6
B B_1 C C_1 0.6
B B_1 C C_10 0.1
B B_1 D D_1 0.4
B B_1 E E_1 0.6
B B_1 E E_2 0.2
B B_1 E E_5 0.3
B B_1 E E_4 0.6
B B_1 F F_1 0.4
B B_1 F F_4 0.9
C C_1 D D_1 0.8
C C_1 E E_1 0.6
C C_1 E E_2 0.4
C C_1 E E_4 0.3
C C_1 E E_5 0.2
C C_1 F F_1 0.3
C C_1 F F_4 0.4
C C_10 D D_1 0.2
C C_10 E E_1 0.3
C C_10 E E_2 0.4
C C_10 E E_5 0.3
C C_10 E E_4 0.4
C C_10 F F_1 0.3
C C_10 F F_4 0.2
D D_1 F F_4 1
D D_1 E E_2 0.5
D D_1 E E_5 0.3
D D_1 E E_4 0.2
D D_1 F F_1 0.5
D D_1 F F_4 0.2
E E_1 F F_1 0.9
E E_1 F F_4 0.2
E E_2 F F_1 0.3
E E_2 F F_4 0.2
E E_5 F F_1 0.5
E E_5 F F_4 0.3
E E_4 F F_1 0.6
E E_4 F F_4 0.3
我想要的矩阵输出为:
As Hs Ts
A_1 B_1 C_1 D_1 E_1 E_2 A_6 E_5 F_1 F_4 A_7 C_10 E_4
As A_1 1 1 1 1 0.8 0.3 0.3 0.1 0.3 0.1
B_1 1 0.6 0.4 0.6 0.2 0.5 0.3 0.4 0.9 0.3 0.1 0.6
C_1 1 0.6 0.8 0.6 0.4 0.4 0.2 0.3 0.4 0.3 0.3
D_1 1 0.4 0.8 1 0.5 0.2 0.3 0.5 0.2 0.3 0.2 0.2
E_1 1 0.6 0.6 1 0.5 0.2 0.4 0.3
E_2 0.8 0.2 0.4 1 0.2 0.2 0.5 0.4
Hs A_6 0.5 0.4 0.2 0.5 0.2 0.3 0.3 0.4 0.5 0.4
E_5 0.3 0.3 0.2 0.3 0.3 0.6 0.3
F_1 0.3 0.4 0.3 0.5 0.9 0.3 0.3 0.6 0.3 0.6
F_4 0.1 0.9 0.4 0.2 0.2 0.2 0.4 0.6 0.2 0.3
Ts A_7 0.3 0.3 0.3 0.4 0.5 0.6 0.6 0.6 0.3 0.6
C_10 0.3 0.1 0.5 0.3 0.4
E_4 0.1 0.6 0.3 0.2 0.4 0.6 0.4
注意,没有分数的对在输出矩阵中应该为空。
我应该尝试 pd.crosstab 吗? df.pivot_table ? groupby 和 unstack?
我怎样才能达到预期的输出?任何建议将不胜感激。 请注意,没有分数的对在输出矩阵中应该为空。 谢谢
【问题讨论】:
-
能否分享一下你试过的代码
标签: python pandas numpy matrix pandas-groupby