加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读