python – 如何在多索引pandas数据帧中选择嵌套列
发布时间:2020-12-20 12:13:44 所属栏目:Python 来源:网络整理
导读:我创建了一个像这样的3D Pandas数据帧: A= ['ECFP','ECFP','FCFP','RDK5','RDK5']B = ['R','tau','RMSEc','R','RMSEc']C = array([[ 0.1,0.3,0.5,nan,0.6,0.4 ],[ 0.4,0.4,0.3 ],[ 1.2,1.3,1.1,1.5,1. ],0.8,0.1,0.2 ],[ 0.2,0.6 ],[ 1.,1.2,1.,0.9,0.7,[ 0
我创建了一个像这样的3D Pandas数据帧:
A= ['ECFP','ECFP','FCFP','RDK5','RDK5'] B = ['R','tau','RMSEc','R','RMSEc'] C = array([[ 0.1,0.3,0.5,nan,0.6,0.4 ],[ 0.4,0.4,0.3 ],[ 1.2,1.3,1.1,1.5,1. ],0.8,0.1,0.2 ],[ 0.2,0.6 ],[ 1.,1.2,1.,0.9,0.7,[ 0.6,0.5 ],0.97,1. ]]) df = pd.DataFrame(data=C.T,columns=pd.MultiIndex.from_tuples(zip(A,B))) df = df.dropna(axis=0,how='any') 最终的Dataframe如下所示: ECFP FCFP RDK5 R tau RMSEc R tau RMSEc R tau RMSEc 0 0.1 0.4 1.2 0.4 0.2 1.0 0.4 0.6 1.2 1 0.3 0.3 1.3 0.3 0.3 1.2 0.7 0.5 1.5 2 0.5 0.3 1.1 0.4 0.3 1.0 0.5 0.3 1.3 4 0.6 0.4 1.5 0.1 0.5 1.2 0.6 0.3 1.5 5 0.4 0.3 1.0 0.2 0.6 1.0 0.6 0.5 1.0 如何才能在所有类型的数据(‘ECFP’,’FCFP’,’RDK5′)的’R’值之间获得相关矩阵? 解决方法
使用
IndexSlice:
In [53]: df.loc[:,pd.IndexSlice[:,'R']] Out[53]: ECFP FCFP RDK5 R R R 0 0.1 0.4 0.4 1 0.3 0.3 0.7 2 0.5 0.4 0.5 4 0.6 0.1 0.6 5 0.4 0.2 0.6 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |