이름 바꾸기 :팬더, (데이터의 순서가 변경)을 multiindex 열 나는 다음 dataframe해야합니까
{'e1.data_280': {0: 10, 1: 20, 2: 30},
'e1.data_603': {0: 7, 1: 8, 2: 9},
'e2.data_280': {0: 30, 1: 20, 2: 10},
'e2.data_603': {0: 8, 1: 9, 2: 1}}
후를 :
: 그것은처럼 보이는df.columns = df.columns.str.split('.', expand=True)
이제 data_
이라는 문구를 제거하고 싶습니다.
는 세 자리 밑줄 뒤에 얻을 : 데이터가 변경
df.columns.set_levels(cols, level=1, inplace=True)
: 나는 기존의 라벨을 교체 할 경우
cols = [item.split('_')[1] for item in df.columns.get_level_values(1)]
cols
['603', '280', '603', '280']
내가 cols
를 볼 수준 1의 멀티 색인 이름보다 많은 항목이 있습니다 :
MultiIndex(levels=[['e1', 'e2'], ['data_280', 'data_603']],
labels=[[0, 0, 1, 1], [1, 0, 1, 0]])
그러나 데이터 프레임에서 첫 번째 수준의 multiindex 열의 이름을 바꾸려면 어떻게해야합니까?
편집 : 해결 방법
df.unstack().reset_index()
함께 열 및 분할 열 값을 이름 바꾸기와 함께 작동합니다 : 당신은 cols = [item.split('_')[1] for item in df.columns.levels[1]]
을 사용할 수 있습니다
코드를 실행할 때 원하는 결과가 나타나는 것 같습니다. – GiantsLoveDeathMetal
그러나'inplace = True'를 전달할 때 오류가 발생하지만 원하는 df는 내가 없으면 얻을 수 있습니다. – GiantsLoveDeathMetal
@GiantsLoveDeathMetal 어떤 팬더 버전을 실행하고 있습니까? – Moritz