Pandas Dataframe의 색인을 열로 변환하는 방법
Asad Riaz
2023년1월30일
-
df.index
를 사용하여 인덱스를 새 열로 추가 -
reset_index
와rename_axis
는 현재 인덱스 열 이름을 바꿉니다 -
열을 인덱스로 변환하는
set_index
메소드 -
column
에 여러 개의 색인 레이어를 설정하는MultiIndex
Pandas DataFrame
의index
를df.index
,set_index
,reset_index
와 같은rename_axis
와 같은 열로 변환하여index
의 이름을 바꾸는 다양한 방법을 소개합니다.
또한 여러 계층의 인덱스가있는 주어진 DataFrame
에 Multi-Index
를 적용하는 방법도 소개합니다.
df.index
를 사용하여 인덱스를 새 열로 추가
컬럼으로 인덱스를 추가하는 가장 간단한 방법은df.index
를 새 컬럼으로 DataFrame
에 추가하는 것입니다.
예제 코드:
# python 3.x
import pandas as pd
df = pd.DataFrame(
[(1, 2, None), (None, 4, None), (5, None, 7), (5, None, None)],
columns=["a", "b", "d"],
)
df["index"] = df.index
print(df)
출력:
a b d index1
0 1.0 2.0 NaN 0
1 NaN 4.0 NaN 1
2 5.0 NaN 7.0 2
3 5.0 NaN NaN 3
reset_index
와rename_axis
는 현재 인덱스 열 이름을 바꿉니다
우리는index
의 이름을 바꾸고reset_index
를 시리즈로 사용할 수 있습니다:
# python 3.x
import pandas as pd
df = pd.DataFrame(
[(1, 2, None), (None, 4, None), (5, None, 7), (5, None, None)],
columns=["a", "b", "d"],
)
df = df.rename_axis("index").reset_index()
print(df)
출력:
index a b d
0 0 1.0 2.0 NaN
1 1 NaN 4.0 NaN
2 2 5.0 NaN 7.0
3 3 5.0 NaN NaN
열을 인덱스로 변환하는set_index
메소드
set_index
메소드를 사용하여 컬럼을 인덱스로 변환 할 수 있습니다:
# python 3.x
import pandas as pd
df = pd.DataFrame(
[(1, 2, None), (None, 4, None), (5, 4, 7), (5, 5, None)], columns=["a", "b", "d"]
)
df.set_index("b", inplace=True)
print(df)
출력:
a d
b
2 1.0 NaN
4 NaN NaN
4 5.0 7.0
5 5.0 NaN
또는 원본에서와 같이 색인 이름을 제거하려면df.index.name = None
을 수행 할 수 있습니다.
# python 3.x
import pandas as pd
df = pd.DataFrame(
[(1, 2, None), (None, 4, None), (5, 4, 7), (5, 5, None)], columns=["a", "b", "d"]
)
df.set_index("b", inplace=True)
df.index.name = None
print(df)
출력:
a d
2 1.0 NaN
4 NaN NaN
4 5.0 7.0
5 5.0 NaN
column
에 여러 개의 색인 레이어를 설정하는 MultiIndex
MultiIndex.from_product()
함수를 사용하여 다음과 같이 MultiIndex
를 만들 수 있습니다:
# python 3.x
import pandas as pd
import numpy as np
index = pd.MultiIndex.from_product(
[["Burger", "Steak", "Sandwich"], ["Half", "Full"]], names=["Item", "Type"]
)
df = pd.DataFrame(
index=index, data=np.random.randint(0, 10, (6, 4)), columns=list("abcd")
)
print(df)
출력:
a b c d
Item Type
Burger Half 0 3 9 1
Full 2 2 0 5
Steak Half 8 4 5 5
Full 5 8 0 7
Sandwich Half 2 8 9 5
Full 4 4 5 9