这个问题的灵感来自这个问题。我有同样的问题,通过选择更新 MultiIndex DataFrame。Pandas 0.13 中的drop_level=False
解决方案将允许我实现相同的结果,但我仍然想知道为什么我无法从 MultiIndex DataFrame 中获取视图。换句话说,为什么这不起作用?:
>>> sat = d.xs('sat', level='day', copy=False)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 2248, in xs
raise ValueError('Cannot retrieve view (copy=False)')
ValueError: Cannot retrieve view (copy=False)
当然也可能只是因为没有实现,但有什么原因吗?它是否以某种方式模棱两可或不可能实施?返回视图对我来说比返回副本然后更新原始视图更直观。我查看了源代码,似乎明确检查了这种情况以引发错误。
或者,是否可以从任何其他索引方法获得相同类型的视图?我已经尝试过,但没有成功。
[编辑]这里讨论了一些潜在的实现。我想对于上面的最后一个问题,我想知道当前最好的解决方案是索引任意多索引切片和横截面。