이 질문은 this question에서 영감을 받았습니다. 동일한 문제가 발생하여 MultiIndex DataFrame을 선택 항목으로 업데이트했습니다. 팬더 0.13의 drop_level=False
솔루션을 사용하면 동일한 결과를 얻을 수 있지만 멀티 인 덱스 DataFrame에서 뷰를 가져올 수없는 이유는 아직도 궁금합니다. 즉, 이유는 물론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)
그것을 구현되지 않은 경우에만 때문에 수? 작동하지,하지만 이유가 무엇입니까? 구현하기가 모호하거나 불가능합니까? 뷰를 반환하는 것은 복사본을 반환 한 다음 나중에 원본을 업데이트하는 것보다 더 직관적입니다. 나는 소스를 들여다 보았고,이 상황이 명시 적으로 오류를 일으키는 지 확인했다.
또는 다른 인덱싱 방법에서 동일한 종류의보기를 가져올 수 있습니까? 나는 실험했지만 성공하지 못했습니다.
[편집] 일부 구현은 here으로 논의됩니다. 위의 마지막 질문으로 나는 현재 최상의 솔루션은 임의의 multiindex 슬라이스와 횡단면으로 색인을 지정하는 것입니다.
제대로 이해하고 있는지 확인하십시오. 저수준 구현 세부 사항 때문에 불가능하다고 말하는 것입니까? 우리가 주제를 다루는 동안 - 색인 레이블 인 키와 함께 사전에 의한 색인을 허용하는 논의가 있습니까? 내 코드는 사용자의 지시를 받도록 설정되어 있지만 인덱스 및 레이블 목록의 튜플로 변환하려면 추한 변환을해야합니다. 마찬가지로 MultiIndex DataFrames의 하위 집합을 사용하여 우아한 방식으로 작업하는 것처럼 보이지 않습니다. – ontologist
보기는 본질적으로 다른 데이터 블록에 대한 시작/중지 포인터입니다. 근본적으로 무엇을 요구하는지 임의로 (공상적인) 색인 생성으로 이것을 수행하는 것은 일반적으로 불가능합니다. 2 귀하의 두 번째 질문으로 내가 무엇을 묻는 지 모르겠다. – Jeff
답변 해 주셔서 감사합니다. 나는이 주제에 관해 조사해 왔고 나의 두 번째 질문은 [이 향상 요청] (https://github.com/pydata/pandas/issues/4036)에서 제기 된 문제들을 언급하고 있다고 생각합니다. 그것이 실행의 문제인 것처럼 보이는 것에 따라 나는 pandas를 따라갈 것이고, 잘만되면 언젠가 나는 나 자신으로 기여할 기술이있을 것이다. – ontologist