python – 在pandas中选择Multiindex列的子级别
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 在pandas中选择Multiindex列的子级别,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2603字,纯文字阅读大概需要4分钟。
内容图文
![python – 在pandas中选择Multiindex列的子级别](/upload/InfoBanner/zyjiaocheng/726/6e8ddc3f12d644b48e0ea0841b2c3f38.jpg)
我生成了一个像这个例子的多索引数据帧
import pandas as pd
import numpy as np
iterables = [ ['co1', 'co2', 'co3', 'co4'], ['age','weight'] ]
multi = pd.MultiIndex.from_product(iterables, names= ["Spread", "attribute"])
df = pd.DataFrame(np.random.rand(80).reshape(10,8),index = range(0,10), columns = multi)
每列都有一个名为’weight’的子级属性
我需要生成一个列表或(最好)系列,对于给定的行,它包含该行中的所有“权重”子列.在示例图片中,我想要一个给我0.02,0.46,0.33,0.47的系列.
有谁能建议一个很好的方法来做到这一点?我想到的解决方案都很严重,我怀疑我对pandas的索引功能有一个不完整的理解.
解决方法:
然后你可以使用loc并传递一个由切片和列标签组成的元组来访问该级别的col:
In [59]:
iterables = [ ['co1', 'co2', 'co3', 'co4'], ['age','weight'] ]
multi = pd.MultiIndex.from_product(iterables, names= ["Spread", "attribute"])
df = pd.DataFrame(np.random.rand(80).reshape(10,8),index = range(0,10), columns = multi)
df
Out[59]:
Spread co1 co2 co3 attribute age weight age weight age weight
0 0.600947 0.509537 0.605538 0.496002 0.215206 0.075079
1 0.152956 0.922832 0.167788 0.024761 0.622378 0.983030
2 0.712478 0.603798 0.407014 0.625474 0.445592 0.903240
3 0.420569 0.576604 0.220097 0.401624 0.929464 0.512026
4 0.273088 0.032303 0.607577 0.836231 0.751845 0.181522
5 0.859699 0.274760 0.456812 0.666109 0.349961 0.237894
6 0.632754 0.603252 0.157416 0.221576 0.068355 0.121864
7 0.090595 0.035526 0.698262 0.525770 0.792618 0.220601
8 0.670236 0.805195 0.310680 0.100464 0.875299 0.853238
9 0.020501 0.405245 0.447614 0.999340 0.659616 0.709312
Spread co4
attribute age weight
0 0.297421 0.415730
1 0.235259 0.156014
2 0.365762 0.198299
3 0.695431 0.478457
4 0.331657 0.338436
5 0.943810 0.097999
6 0.638720 0.033747
7 0.646969 0.475316
8 0.623225 0.024976
9 0.023494 0.959514
In [61]:
df.loc[1,(slice(None),'weight')]
Out[61]:
Spread attribute
co1 weight 0.922832
co2 weight 0.024761
co3 weight 0.983030
co4 weight 0.156014
Name: 1, dtype: float64
解释syntax:
df.loc[1,(slice(None),'weight')]
所以第一个参数只是你的索引lave,第二个param是一个由slice和col标签组成的元组,第一个成员是slice(None)选择所有cols’col1’到’col4’生效,然后是第二个param在下一级选择匹配标签’weight’的cols
内容总结
以上是互联网集市为您收集整理的python – 在pandas中选择Multiindex列的子级别全部内容,希望文章能够帮你解决python – 在pandas中选择Multiindex列的子级别所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。