인덱스 인덱스가 혼합 된 다중 인덱스 데이터 프레임을 사용하고 있습니다. 즉, 첫 번째 수준에는 문자열 레이블이 포함되고 두 번째 및 세 번째 수준은 정수 레이블이고 네 번째 수준 레이블은 날짜입니다. Dataframe 아래처럼 보인다 (master_df)정수 레이블을 사용하는 다중 인덱스 인덱스가있는 데이터 프레임의 부분 업데이트
X1 X2 X3
bucket Start Stop Date
B1 1 1 1/3/2000 2 2 3
1/4/2000 4 3 3
B1 1 2 1/3/2000 4 2 3
1/4/2000 6 2 2
내가 master_df.ix로 sub_df을 먹고 싶어 [ 'B1'를, 1,2, :], sub_df에 일부 작업을하고에 master_df에 다시 저장 같은 위치. 나는 여러 가지 방법을 사용하여 sub_df를 가져올 수 있지만 다시 저장할 때 시도한 모든 옵션이 작동하지 않는 것처럼 보입니다. 나는이 문제가 'Integer'레이블 (두 번째 및 세 번째 lavel - start-stop에서)과 관련이 있다고 생각합니다. 나는
당신이 그것을 할 수있는 적절한 방법을 제안 할 수 위의 작업 중
sub_df = master_df.ix['B1'].ix[1].ix[2]
#do some operations on sub_df
master_df.xs('B1').xs(1).xs(2).update(sub_df)
master_df.ix['B1'].ix[1].ix[2].update(sub_df)
merge(master_df.ix['B1',1,2,:],sub_df)
것도 master_df의 변화를 반영하지 어떤 성공 (나도 오류 메시지를받을니까.)없이 옵션/방법을 아래에 시도?
는 업데이트 : sub_df에 작업 날짜 인덱스 만 예상대로sub_df 및 master_df은 같은 인덱스가 없습니다. sub_df는 다음과 같습니다.
X1 X2 X3
Date
1/3/2000 2 2 3
1/4/2000 4 3 3
나는 오류 다음 얻을
sub_df = master_df[master_df.index.get_loc(('B1', 1, 2))]
하려고하면 -
형식 오류를 : unhashable 유형을 'numpy.ndarray를'여기
주요 용도는 작은 덩어리에서 작동하는 것입니다 master_df의 원래 위치에 다시 저장하십시오. 나는 update 메소드를 사용해 보았지만,이 목적을 달성하기위한 다른 대안이있을 것이다.
가 확인할 수있는'master_df'? [doc] (http://pandas.pydata.org/pandas-docs/stable/merging.html#merging-together-values-withins-series-or-dataframe-columns)에는 '두 가지 유사 색인' (또는 이와 유사하게 인덱싱 된) "update"메소드의 DataFrames 또는 Series. – herrfz