3
계층 적 인덱스의 특정 수준에서 일부 행에 대한 DataFrame 항목을 수정하고 싶습니다.pandas : 복사본이없는 계층 적 인덱스의 슬라이스
>>> index = pd.MultiIndex.from_arrays([['a','a', 'b', 'b'], [1,2,1,2]],
... names=['first', 'second'])
>>> data = pd.DataFrame(np.random.rand(len(index)), index=index, columns=['A'])
>>> print data
A
first second
a 1 0.587781
2 0.560407
b 1 0.492996
2 0.267799
I가 second==2
0 (예를 들면)의 행을 설정하려는 : 여기 정규 예이다. 내가 DataFrame.xs
방법을 사용하여 시도했지만보기를 사본을 반환하지 :
>>> selected = data.xs(2, level='second')
>>> print selected
A
first
a 0.560407
b 0.267799
>>> selected['A']=0
>>> print data
A
first second
a 1 0.587781
2 0.560407
b 1 0.492996
2 0.267799
마지막 할당 data
에 영향을 미치지 않았다 (이것은 물론 selected
값을 변경).
제안 해 주셔서 감사합니다. 그것은 단일 수준 인덱스와 함께 잘 작동하는 것 같지만 다중 인덱스에서는 작동하지 않습니다. 내 팬더 버전은 0.9.0 – btel
입니다. 문제가 될 것 같습니다. 문제가 발생했습니다. https://github.com/pydata/pandas/issues/2117 –
신고 해 주셔서 감사합니다. 그것이 해결되기 전에 제가 적용 할 수있는 일이 있습니까? – btel