Pandas DataFrame DataFrame.set_index() 함수
Suraj Joshi
2023년1월30일
Pandas
Pandas DataFrame
-
pandas.DataFrame.set_index()메서드 구문: -
예제 코드: Pandas
DataFrame.set_index()메서드로 Pandas DataFrame 인덱스 설정 -
예제 코드: Pandas
DataFrame.set_index()메서드에서drop = False설정 -
예제 코드: Pandas
DataFrame.set_index메서드에서inplace = True설정 -
예제 코드: Pandas
DataFrame.set_index()메서드를 사용하여 여러 인덱스 열 설정 -
예제 코드:
verify_integrity가True일 때 PandasDataFrame.set_index()동작
pandas.DataFrame.set_index() 메서드를 사용하여 배열 또는 열을 설정할 수 있습니다. DataFrame 생성 후에도 DataFrame의 인덱스로 적절한 길이의 새로 설정된 인덱스는 기존 인덱스를 대체하거나 기존 인덱스에서 확장 할 수도 있습니다.
pandas.DataFrame.set_index()메서드 구문:
DataFrame.set_index(
keys, drop=True, append=False, inplace=False, verify_integrity=False
)
매개 변수
keys |
인덱스로 설정할 열 또는 열 목록 |
drop |
부울. 기본값은 True로 인덱스로 설정할 컬럼을 삭제합니다. |
append |
부울. 기본값은 False이며 기존 색인에 열을 추가할지 여부를 지정합니다. |
inplace |
부울. True이면 호출자 DataFrame을 제자리에서 수정합니다. |
verify_integrity |
부울. True인 경우 중복 색인을 만들 때 ValueError를 발생시킵니다. 기본값은 False입니다. |
반환
inplace가True이면 인덱스 열이 수정 된DataFrame 객체를 반환합니다. 그렇지 않으면 None.
예제 코드: Pandas DataFrame.set_index()메서드로 Pandas DataFrame 인덱스 설정
import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ,'ABC') ,
('Mango', 24, 'No','ABC' ) ,
('banana', 14, 'No','ABC' ) ,
('Apple', 44, 'Yes',"XYZ" ) ]
df = pd.DataFrame(fruit_list,
columns = ['Name',
'Price',
'In_Stock',
'Supplier'])
print(df)
df_modified=df.set_index("Name")
print(df_modified)
출력:
Name Price In_Stock Supplier
0 Orange 34 Yes ABC
1 Mango 24 No ABC
2 banana 14 No ABC
3 Apple 44 Yes XYZ
4 Pineapple 64 No XYZ
5 Kiwi 84 Yes XYZ
Price In_Stock Supplier
Name
Orange 34 Yes ABC
Mango 24 No ABC
banana 14 No ABC
Apple 44 Yes XYZ
Pineapple 64 No XYZ
Kiwi 84 Yes XYZ
원본Dataframe은 기본 인덱스 열로 숫자 범위를 가지며modified_df에서는set_index()메서드를 사용하여Name 열을 인덱스로 설정합니다.
예제 코드: Pandas DataFrame.set_index()메서드에서drop = False 설정
import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ,'ABC') ,
('Mango', 24, 'No','ABC' ) ,
('banana', 14, 'No','ABC' ) ,
('Apple', 44, 'Yes',"XYZ" ) ]
df = pd.DataFrame(fruit_list,
columns = ['Name',
'Price',
'In_Stock',
'Supplier'])
print(df)
df_modified=df.set_index("Name",drop=False)
print(df_modified)
출력:
Name Price In_Stock Supplier
0 Orange 34 Yes ABC
1 Mango 24 No ABC
2 banana 14 No ABC
3 Apple 44 Yes XYZ
Name Price In_Stock Supplier
Name
Orange Orange 34 Yes ABC
Mango Mango 24 No ABC
banana banana 14 No ABC
Apple Apple 44 Yes XYZ
DataFrame set_index 메소드에서drop = False를 설정하면name 열은index 열로 설정 한 후에도Dataframe에서 열로 남아 있습니다.
예제 코드: Pandas DataFrame.set_index 메서드에서inplace = True 설정
import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ,'ABC') ,
('Mango', 24, 'No','ABC' ) ,
('banana', 14, 'No','ABC' ) ,
('Apple', 44, 'Yes',"XYZ" ) ]
df = pd.DataFrame(fruit_list, columns = ['Name' , 'Price', 'In_Stock',"Supplier"])
print("Before Setting Index:")
print(df)
df.set_index("Name",inplace=True)
print("After Setting Index:")
print(df)
출력:
Before Setting Index:
Name Price In_Stock Supplier
0 Orange 34 Yes ABC
1 Mango 24 No ABC
2 banana 14 No ABC
3 Apple 44 Yes XYZ
After Setting Index:
Price In_Stock Supplier
Name
Orange 34 Yes ABC
Mango 24 No ABC
banana 14 No ABC
Apple 44 Yes XYZ
set_index()메서드에서inplace = True를 설정하면 호출자dataFrame이 제자리에서 수정됩니다.
예제 코드: Pandas DataFrame.set_index()메서드를 사용하여 여러 인덱스 열 설정
import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ,'ABC') ,
('Mango', 24, 'No','ABC' ) ,
('banana', 14, 'No','ABC' ) ,
('Apple', 44, 'Yes',"XYZ" ) ]
df = pd.DataFrame(fruit_list, columns = ['Name' , 'Price', 'In_Stock',"Supplier"])
print("Before Setting Index:")
print(df)
df.set_index("Name",append=True,inplace=True,drop=False)
print("After Setting Index:")
print(df)
출력:
Before Setting Index:
Name Price In_Stock Supplier
0 Orange 34 Yes ABC
1 Mango 24 No ABC
2 banana 14 No ABC
3 Apple 44 Yes XYZ
After Setting Index:
Name Price In_Stock Supplier
Name
0 Orange Orange 34 Yes ABC
1 Mango Mango 24 No ABC
2 banana banana 14 No ABC
3 Apple Apple 44 Yes XYZ
set_index메소드에서 append = True를 설정하면 새로 설정된 색인 열을 기존 색인에 추가하고 단일 DataFrame에 대해 여러 색인 열을 갖습니다.
예제 코드: verify_integrity가True 일 때 Pandas DataFrame.set_index()동작
import pandas as pd
fruit_list = [
("Orange", 34, "Yes", "ABC"),
("Mango", 24, "No", "ABC"),
("Apple", 14, "No", "ABC"),
("Apple", 44, "Yes", "XYZ"),
]
df = pd.DataFrame(fruit_list, columns=["Name", "Price", "In_Stock", "Supplier"])
df_modified = df.set_index("Name", verify_integrity=True)
print(df_modified)
출력:
Traceback (most recent call last):
.....line 3920, in set_index
dup=duplicates))
ValueError: Index has duplicate keys: Index(['Apple'], dtype='object', name='Name')
인덱스에 Apple이라는 중복 키가 있으므로 ValueError가 발생합니다. 인덱스로 설정된 열에 두 개의 Apple이 있습니다. 따라서set_index()메소드에서verify_integrity가True로 설정되면 오류가 발생합니다.
튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
작가: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn