我从以下表格数据开始:(假设按版本列出测试结果)
Item Result Version
0 TO OK V1
1 T1 NOK V1
2 T2 OK V1
3 T3 NOK V1
4 TO OK V2
5 T1 OK V2
6 T2 NOK V2
7 T3 NOK V2
df=p.DataFrame({'Item': ['TO','T1','T2','T3','TO','T1','T2','T3'],
'Version': ['V1','V1','V1','V1','V2','V2','V2','V2'],
'Result' : ['OK','NOK','OK','NOK','OK','OK','NOK','NOK']})
我试图建立以下报告:
V2
OK NOK
V1 OK T0 T2
NOK T1 T3
(T0
上面应该是一个由函数聚合产生的python 集合set
),我想在行和列上都有多索引。
我想不出如何把相同的“结果”栏的两个行和列multiindexes。有什么建议吗?
发布于 2018-07-24 10:21:52
使用pd.pivot_table
:
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
发布于 2018-07-24 11:06:18
基本上我们可以用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
https://stackoverflow.com/questions/-100008708
复制相似问题