我有一个带有两级多重索引的DataFrame:“State”和“RegionName”(如果有人在Coursera上完成了Python专门化的applicated Data Science,这是第一个类的最后一个项目)。在
我试图将索引的“RegionName”级别设置为DataFrame的列,并使用它来创建布尔掩码。在
我试着跟着:
housing_data['Town'] = housing_data.index.levels[1]
我得到一个错误:“值的长度与索引的长度不匹配”
我试图弄清楚这是怎么可能的,因为我实际上是在使用DataFrame的索引向同一个DataFrame添加一个列。长度怎么可能不匹配?在
如果它增加了任何额外的洞察力:
^{pr2}$这可能是我的问题之一吗?在
你试过重置吗?在
跳到最后一部分(首先不需要为布尔掩码创建新列!)在
现在,为了回答你的问题。。。在
你的数据帧没问题!用你的方法,你只缺了一步。从
.levels[]
获取值只是第一步。在这将输出:
^{pr2}$从这里可以看出,返回
levels
值是不够的。您还必须将这些值映射到相应的labels
值上。labels
的长度将与行数相同。在或者
不过,这个映射有一个内置函数!在
实际上,您可以使用
get_level_values
来完成所有的布尔蒙版。不需要创建额外的列。在相关问题 更多 >
编程相关推荐