본문 바로가기
프로젝트

분산분석을 진행하면서 발생한 이슈들 해결법

by 포 키 2023. 9. 18.
728x90

주말에 진행해본 라이브러리가 아닌 pingouin 라이브러리를 사용하라는 피드백을 받고 분산분석을 새로 진행했다.

주말에 진행한 코드에 문제가 있다고 생각해서 도움을 요청했는데 pingouin 라이브러리를 사용한 후 해결했다. ㅜㅜㅜㅜ

주말동안 이 부분으로 정말 골치 아팠는데 해결 되었다는 사실만으로 너무 다행이었다.

지금부터는 내가 라이브러리를 사용하면서 겪은 이슈와 해결한 방법을 작성해보려 한다.

 

기존 데이터프레임에 연도 설정이 없음

나는 4년치의 데이터를 비교하는 것이 목적이었기에 각 데이터가 몇년도를 뜻하는지를 코드에도 활용해야했다.

사람인 나는 코드 변수명을 보고 확인하면 그만이지만, 파이썬을 이용해 코드 분석을 진행하려면 어쩔 수가 없었다.

그래서 기존 데이터 프레임에 연도라는 컬럼을 생성해 데이터가 의미하는 연도를 집어넣어줬다.

 

total_cost_2018['연도'] = 2018
total_cost_2019['연도'] = 2019
total_cost_2020['연도'] = 2020
total_cost_2021['연도'] = 2021

이런식으로 활용했다.

 

 

대립가설이 채택된 부분의 사후 분석 중 종속변수 인식 이슈

대립가설이 채택되고, 이 카테고리에 대한 사후 분석을 진행해야 했다.

Tukey HSD 분석을 사용했는데 이 때, 종속변수의 데이터 값이 숫자형이 아니라는 에러가 났다.

분명 위에서 정수형 리스트를 만들었는데 정수형 변환만 한게 아니라 리스트로 생성해서 그런건지.. 아무튼 안됐다!

그래서 다시 데이터 값들을 숫자형으로 변환 시켜줬다.

 

erged_total['평균'] = pd.to_numeric(merged_total['평균'], errors='coerce')

 

뒤의 errors 부분은 숫자형으로 바뀐 후 결측치가 있다면 nan으로 처리하도록 하는 코드이다.

그리고 분석 이전 시각화에서 사용했던 4년치의 데이터를 리스트로 묶었던 코드를 하나의 데이터 프레임으로 만들어서 사용했다.

concat이 합쳐주는 코드이다.

 

merged_transportation = pd.concat(transportation_cost_comparison)

 

 

사후 분석에 대한 내용을 엑셀로 변환하는데 생긴 이슈

코랩을 기반으로 한 것이라 pandas의 버전이 달라서인지 업그레이드를 해도 style_to_excel 메서드가 적용되지 않았다.

이 부분들은 로컬에서 했었으면 생겼을 오류가 아니라고 생각한다.

이 코드에서 to_excel 메서드의 engine 매개변수를 'openpyxl'로 설정해,

openpyxl 엔진을 사용하여 Excel 파일에 저장하도록 변경해봤다.

이렇게 바꾸니까 엑셀로 변환도 가능했고 파일을 다시 데이터 프레임 형식으로 가져와 출력하는데에 문제가 없었다.

 

 

728x90