我有以下pandas数据框架,我在其中存储了多个模型和多个公司的赢/输结果
<表类>
公司
Model_1
Winloss
Model_2
Winloss2
tbody><<tr>Company1 资讯 W GPR L Company1 资讯 L 请 W Company1 资讯 L KRR W Company1 资讯 L XGB W Company1 GPR L SGD W Company2 GPR L 请 W Company2 KRR L XGB W 表类>
先用wide_to_long
,再用crosstab
:
df = pd.wide_to_long(df.reset_index().rename(columns={'Winloss':'Winloss1'}),
stubnames=['Model_','Winloss'],
i=['index','company'],
j='tmp').reset_index()
df = pd.crosstab(df['company'], [df['Model_'], df['Winloss']])
print (df)
Model_ GPR KNN KRR PLS SGD XGB
Winloss L L W L W W W W
company
Company1 2 3 1 0 1 1 1 1
Company2 1 0 0 1 0 1 0 1