Python 如何建立多指标转移矩阵?
我从以下表格数据开始:(假设测试结果按版本) 我尝试构建以下报告: V2 OK NOK V1 OK T0 T2 NOK T1 T3 V2 OK NOK V1正常T0 T2 NOK T1 T3 (上面的Python 如何建立多指标转移矩阵?,python,pandas,pivot-table,multi-index,Python,Pandas,Pivot Table,Multi Index,我从以下表格数据开始:(假设测试结果按版本) 我尝试构建以下报告: V2 OK NOK V1 OK T0 T2 NOK T1 T3 V2 OK NOK V1正常T0 T2 NOK T1 T3 (上面的T0应该是一个pythonset集合,由set函数聚合而成),我希望在行和列上都有多个索引 我不知道如何在行和列多索引中放置相同的“结果”列。有什么线索吗?IIUC,基本上我们可以使用pivot df['New']=l
T0
应该是一个pythonset集合,由set
函数聚合而成),我希望在行和列上都有多个索引
我不知道如何在行和列多索引中放置相同的“结果”列。有什么线索吗?IIUC,基本上我们可以使用
pivot
df['New']=list(zip(df.Version,df.Result))
s=df.groupby('Item').New.apply(list).apply(pd.Series).reset_index().pivot(0,1,'Item')
s
Out[502]:
1 (V2, NOK) (V2, OK)
0
(V1, NOK) T3 T1
(V1, OK) T2 TO
s.index=pd.MultiIndex.from_tuples(s.index)
s.columns=pd.MultiIndex.from_tuples(s.columns)
s
Out[507]:
V2
NOK OK
V1 NOK T3 T1
OK T2 TO
这是一个使用pd.pivot\u表的解决方案:
g = df.groupby('Item')['Result'].apply(list).reset_index()
g[['V1', 'V2']] = g['Result'].apply(pd.Series)
res = g.pivot_table(index='V1', columns='V2', values='Item', aggfunc='first')
print(res)
V2 NOK OK
V1
NOK T3 T1
OK T2 TO
@温,也许,如果第一级只有一个值,这只是另一个想法。很公平:-)
df['New']=list(zip(df.Version,df.Result))
s=df.groupby('Item').New.apply(list).apply(pd.Series).reset_index().pivot(0,1,'Item')
s
Out[502]:
1 (V2, NOK) (V2, OK)
0
(V1, NOK) T3 T1
(V1, OK) T2 TO
s.index=pd.MultiIndex.from_tuples(s.index)
s.columns=pd.MultiIndex.from_tuples(s.columns)
s
Out[507]:
V2
NOK OK
V1 NOK T3 T1
OK T2 TO
g = df.groupby('Item')['Result'].apply(list).reset_index()
g[['V1', 'V2']] = g['Result'].apply(pd.Series)
res = g.pivot_table(index='V1', columns='V2', values='Item', aggfunc='first')
print(res)
V2 NOK OK
V1
NOK T3 T1
OK T2 TO