반응형
다중 인덱스 데이터 프레임에서 레벨을 제거하는 방법은 무엇입니까?
예를 들어 다음과 같은 것이 있습니다.
In [1]: df = pd.DataFrame([8, 9],
index=pd.MultiIndex.from_tuples([(1, 1, 1),
(1, 3, 2)]),
columns=['A'])
In [2] df
Out[2]:
A
1 1 1 8
3 2 9
인덱스에서 마지막 레벨을 제거하는 데 이보다 더 나은 방법이 있습니까?
In [3]: pd.DataFrame(df.values,
index=df.index.droplevel(2),
columns=df.columns)
Out[3]:
A
1 1 8
3 9
df.reset_index(level=2, drop=True)
Out[29]:
A
1 1 8
3 9
DataFrame 인스턴스를 새로 만들 필요가 없습니다!인덱스를 수정할 수 있습니다.
df.index = df.index.droplevel(2)
df
A
1 1 8
3 9
끝에서 선택할 수 있도록 음의 지수를 지정할 수도 있습니다.
df.index = df.index.droplevel(-1)
인덱스에 다음과 같은 이름이 있는 경우
A
X Y Z
1 1 1 8
3 2 9
그런 다음 인덱스 이름을 지정하여 제거할 수도 있습니다.
df.index = df.index.droplevel('Z')
0.24 이상부터 직접 연결 가능합니다.df
. 인덱스의 마지막 레벨을 삭제하려면 다음을(를)
>>> df
col
1 5 1 4 foo
3 2 8 bar
2 4 3 7 saz
>>> df.droplevel(-1)
col
1 5 1 foo
3 2 bar
2 4 3 saz
레벨이 떨어지는 축은 다음과 같이 제어할 수 있습니다.axis
인수는 기본적으로 0, 즉 over index로 설정됩니다.목록을 제공하여 여러 단계를 한 번에 삭제할 수 있으며, 색인에 이름이 있는 경우에도 해당 단계를 사용할 수 있습니다(링크된 문서에 예시됨).
참고: 논제는 다음과 같습니다.droplevel
먼저 레이블로 해석하려고 합니다. 따라서 레벨 중 하나에 정수 이름이 있는 경우 삭제됩니다. 즉, 위치가 아닙니다.
>>> df
col
this -1 other 0
1 5 1 4 foo
3 2 8 bar
2 4 3 7 saz
# literally drops `-1` level
>>> df.droplevel(-1)
col
this other 0
1 1 4 foo
2 8 bar
2 3 7 saz
# literally level `0` is dropped
>>> df.droplevel(0)
col
this -1 other
1 5 1 foo
3 2 bar
2 4 3 saz
위치가 떨어지는 것을 확실하게 하기 위해, 우리는names
속성을 지정하고 위치를 선택합니다.
>>> df
col
this -1 other 0
1 5 1 4 foo
3 2 8 bar
2 4 3 7 saz
# go get the name of the last level, drop whatever it is
>>> df.droplevel(df.index.names[-1])
col
this -1 other
1 5 1 foo
3 2 bar
2 4 3 saz
# similarly...
>>> df.droplevel(df.index.names[0])
col
-1 other 0
5 1 4 foo
3 2 8 bar
4 3 7 saz
마지막으로.droplevel
새 데이터 프레임을 반환하므로,df = df.droplevel(...)
변화를 보기 위해 필요합니다.df
.
언급URL : https://stackoverflow.com/questions/17084579/how-to-remove-levels-from-a-multi-indexed-dataframe
반응형
'programing' 카테고리의 다른 글
jquery가 없는 맨 위 애니메이션 스크롤 (0) | 2023.09.12 |
---|---|
도커 컨테이너가 출구 코드 1과 함께 바로 나가는 이유는 무엇입니까? (0) | 2023.09.12 |
IntelliJ IDEA에게 사용되지 않은 것으로 식별하지 않는 방법을 알려줍니다. (0) | 2023.09.12 |
자바스크립트 이벤트에 Ajax vs Json을 언제 사용할 것인가요? (0) | 2023.09.12 |
AWS RDS 세션 대 Global sql mode Setting 값 (0) | 2023.09.12 |