[python] Pandas Multi-Index를 열로 변환

두 가지 색인 수준의 데이터 프레임이 있습니다.

                         value
Trial    measurement
    1              0        13
                   1         3
                   2         4
    2              0       NaN
                   1        12
    3              0        34 

내가 이것으로 바꾸고 싶은 것 :

Trial    measurement       value

    1              0        13
    1              1         3
    1              2         4
    2              0       NaN
    2              1        12
    3              0        34 

어떻게하면 좋을까요?

here 지시 된대로 데이터를 집계하고 싶기 때문에 이것이 필요 하지만 인덱스로 사용중인 경우 열을 선택할 수 없습니다.



답변

reset_index ()는 열과 DataFrame에 인덱스 값을 전송하는 팬더 DataFrame 방법이다. 매개 변수의 기본 설정은 drop = False (색인 값을 열로 유지함)입니다.

.reset_index(inplace=True)DataFrame 이름 뒤에 추가해야 할 모든 것 :

df.reset_index(inplace=True)  


답변

이것은 실제로 귀하의 경우에는 적용되지 않지만 5 분 전과 같은 다른 사람들이 알게되면 도움이 될 수 있습니다. multindex의 이름이 다음과 같은 경우 :

                         value
Trial        Trial
    1              0        13
                   1         3
                   2         4
    2              0       NaN
                   1        12
    3              0        34 

df.reset_index(inplace=True) 실패하면 작성된 컬럼의 이름이 같을 수 없습니다.

그런 다음 multindex의 이름을 바꿔서 df.index = df.index.set_names(['Trial', 'measurement'])가져 오십시오.

                           value
Trial    measurement

    1              0        13
    1              1         3
    1              2         4
    2              0       NaN
    2              1        12
    3              0        34 

그리고 df.reset_index(inplace=True)매력처럼 작동합니다.

연도 및 월별로 날짜 시간 열 (인덱스 아님)으로 그룹화 한 후이 문제가 발생하여 연도 및 월 live_date이 모두 이름이 지정되었습니다 live_date.


답변

주석에서 @ cs95가 언급했듯이 한 수준 만 삭제하려면 다음을 사용하십시오.

df.reset_index(level=[...])

이렇게하면 재설정 후 원하는 인덱스를 다시 정의하지 않아도됩니다.


답변