Python中文
首页
教程
问答
标签
搜索
登录
注册
Pandas:对多索引数据帧应用掩码
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个包含多索引列的pandas数据帧,有3个级别:</p> <pre><code>import itertools import numpy as np def mklbl(prefix, n): return ["%s%s" % (prefix, i) for i in range(n)] miindex = pd.MultiIndex.from_product([mklbl('A', 4)]) micolumns = pd.MultiIndex.from_tuples(list(itertools.product(['A', 'B'], ['a', 'b', 'c'], ['foo', 'bar'])), names=['lvl0', 'lvl1', 'lvl2']) dfmi = pd.DataFrame(np.arange(len(miindex) * len(micolumns)).reshape((len(miindex), len(micolumns))), index=miindex, columns=micolumns).sort_index().sort_index(axis=1) lvl0 A B lvl1 a b c a b c lvl2 bar foo bar foo bar foo bar foo bar foo bar foo A0 1 0 3 2 5 4 7 6 9 8 11 10 A1 13 12 15 14 17 16 19 18 21 20 23 22 A2 25 24 27 26 29 28 31 30 33 32 35 34 A3 37 36 39 38 41 40 43 42 45 44 47 46 </code></pre> <p>我想根据另一个dataframe来屏蔽这个dataframe,它有索引的最后两个级别:</p> ^{pr2}$ <p>我想做的是根据<code>a_mask</code>屏蔽原始数据帧。 假设我想在<code>a_mask</code>为真时将原始条目设置为零。在</p> <p>我试图使用<code>pd.IndexSlice</code>,但它以静默方式失败(即,我可以运行以下代码,但没有效果:</p> <pre><code>dfmi.loc[:, pd.IndexSlice[:, a_mask]] = 0 #dfmi is unchanged </code></pre> <p>有什么建议吗?在</p> <p><strong>编辑</strong> 在我的用例中,标签是用笛卡尔积构造的,因此将有(lev0,lev1,lev2)的所有组合。 但在这种情况下,lev0可以假设2个值{A,B},而lev1可以假设3个值{A,B,c}</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我将按如下方式进行:</p> <pre><code>mask = pd.concat({k: a_mask for k in dfmi.columns.levels[0]}, axis=1) dfmi.where(~mask, 0) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
4 回答
无法使用Django\u mssql\u后端迁移到外部hos
9 回答
无法使用Django&Python3.4连接到MySql
1 回答
无法使用Django+nginx上载媒体文件
8 回答
无法使用Django1.6导入名称模式
4 回答
无法使用Django1.7和mongodb登录管理站点
1 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
10 回答
无法使用Djangockedi验证CBV中的字段
7 回答
无法使用Djangocketditor上载图像(错误400)
3 回答
无法使用Djangocron进行函数调用
2 回答
无法使用Djangofiler djang上载文件
1 回答
无法使用Djangokronos
10 回答
无法使用Djangomssql provid
4 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
2 回答
无法使用Djangomssq迁移Django数据库
4 回答
无法使用Djangonox创建用户
1 回答
无法使用Djangopyodb从Django查询SQL Server
1 回答
无法使用Djangopython3ldap连接到ldap
4 回答
无法使用Djangoredis连接到redis
2 回答
无法使用Django中的FK创建新表
10 回答