두 가지 색인 수준의 데이터 프레임이 있습니다.
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=[...])
이렇게하면 재설정 후 원하는 인덱스를 다시 정의하지 않아도됩니다.