-
[Python_EDA] as_index옵션과 index옵션의 차이쪼랭 X Python 2023. 11. 19. 11:06
※주의
이 글은 세상물정모르는 코린이가 Chat GPT가 알려주는 지식을 여과없이 이해해 작성한 자료임으로,
저와 같은 코린이분들은 비판없는 수용을 '지양'해주시기 바라며 저와 다른 세상에서 코딩을 하시는
코딩 고수분들은 아낌없는 조언과 비판을 '지향'해주시기 바랍니다. :)※사용법 필자가 쓴 말은 초록색, GPT가 한말은 파란색으로 구분해두었습니다.
[사건의 발단]

공공데이터포털에 개방된 '공공데이터 개방현황'을 활용해 데이터 분석을 해보고 싶었다.
가장 먼저, 기관별 다운로드수를 보고싶었고 아래 코드를 실행했다.
---------------------------------------------------------------------------------------------
code_down_groupby4 = df.groupby('code')['down'].mean()
print(code_down_groupby4)
code_down_groupby.to_excel(path+'기관별다운로드수4.xlsx', + index=False)---------------------------------------------------------------------------------------------
실행한 결과를 알고 싶어 저장한 엑셀파일을 확인해보니...
내가 원한 것은.... [code]와 [down]칼럼이 모두 나오는 것이었는데...
이 문제를 해결하기 위해 이해 없이 사용해왔던 "index=False"의 역활을 파보기로 하였다.
[먼저! 인덱스(index)란?]
(쪼랭) 인덱스의 정확한 뜻이 뭐야?
(GPT)
인덱스(Index)는 데이터 구조에서 각 항목에 대한 고유한 식별자입니다. 일반적으로 판다스에서는 데이터프레임(DataFrame)이나 시리즈(Series) 객체의 행을 식별하는 데 사용됩니다.
판다스의 DataFrame은 표 형식의 데이터 구조이며, 각 행과 열에는 인덱스와 컬럼이라는 두 가지 종류의 레이블이 있습니다.
- 행 인덱스(Row Index): 각 행에 대한 식별자로, 기본적으로는 0부터 시작하는 정수로 지정됩니다. 그러나 사용자가 지정할 수도 있습니다.
- 열 인덱스(Column Index): 각 열에 대한 식별자로, 컬럼의 이름이나 사용자가 지정한 다른 레이블이 될 수 있습니다.
인덱스를 사용하면 데이터프레임에서 특정 행이나 열에 빠르게 접근할 수 있습니다. 또한, 데이터의 정렬, 그룹화, 병합 등 다양한 연산에서 유용하게 활용됩니다.
판다스에서 groupby 함수와 함께 사용할 때, 그룹화된 데이터의 결과에서 각 그룹의 식별을 위해 인덱스가 사용됩니다. as_index 옵션을 사용하면 그룹화된 결과에서 인덱스를 유지할지 여부를 제어할 수 있습니다.
['as_index = False' 랑 'index= False' 랑 기능은 같지만 쓰임이 다르다고...?]
(GPT)
- groupby 메서드의 as_index 옵션: 그룹화된 결과에서 대상 열을 인덱스로 사용할지 여부를 결정합니다. as_index=False를 사용하면 대상 열이 인덱스로 지정되지 않고, as_index=True일 경우에는 대상 열이 인덱스로 지정됩니다. (아무것도 쓰지 않을 경우 'as_index=True'로 설정된다!)
- to_excel 메서드의 index 옵션: DataFrame을 엑셀 파일로 저장할 때, 인덱스를 엑셀 파일에 포함할지 여부를 결정합니다. index=False를 사용하면 인덱스가 엑셀 파일에 저장되지 않으며, index=True일 경우에는 인덱스가 엑셀 파일에 포함됩니다.
groupby 메서드에서 as_index 옵션은 그룹화된 결과에서의 인덱스 설정을 제어하고, to_excel 메서드에서 index 옵션은 엑셀 파일에 저장할 때의 인덱스 설정을 제어합니다.
(쪼랭)
그럼 내가 이해한게 맞는지 확인해줘 groupby매서드에서는 as_index 옵션이 대상 열을 index 설정을 할지말지 결정하는것이고 to_excel매서드에서는 index옵션이 index로 설정된 열을 저장된 엑셀에 보일지 말지 결정하는거야?
(GPT)
네, 정확히 맞습니다! 여러분의 이해가 정확합니다.
[예시]
(예시를 작성하면서 알게된 사실...!)
인덱스로 설정된 데이터 값은 생산된 엑셀파일에서 Bold(굵은글자)처리가 된다...!
[아무것도 설정하지 않았을 때]
code_down_groupby = df.groupby('code')['down'].mean()
print(code_down_groupby)
code_down_groupby.to_excel(path+'기관별다운로드수.xlsx')
[groupby 인덱스만 설정했을 때]
code_down_groupby2 = df.groupby('code',as_index=False)['down'].mean()
print(code_down_groupby2)
code_down_groupby2.to_excel(path + '기관별다운로드수2.xlsx')
[두개 모두 인덱스 설정했을 때]
code_down_groupby3 = df.groupby('code', as_index=False)['down'].mean()
print(code_down_groupby3)
code_down_groupby3.to_excel(path + '기관별다운로드수3.xlsx', index=False)
[to_excel 인덱스 설정했을 때]
code_down_groupby4 = df.groupby('code')['down'].mean()
print(code_down_groupby4)
code_down_groupby.to_excel(path+'기관별다운로드수4.xlsx', index=False)