오늘 사용할 데이터는 놀이공원에 롤러코스터를 설계하여 직접 놀이공원을 운영하는 게임에서 수집한 142개의 롤러코스터 데이터이다 데이터에는 테마파크 이름 롤러코스터 유형 흥미도 최고 속도 탑승 시간등 다양한 속성이 있음
숫자와 문자열이 섞인 롤러코스터 데이터를 다루기 위한 판다스 라이브러리와 처리한 데이터를 시각화 하기 위한
맷플롯립을 불러옴
판다스 라이브러리의 read_csv()를 사용하여 파일을 읽어온 모습
데이터를 살펴볼때 가장 먼저 해야 하는 작업은 롤로코스터 데이터의 개수와 속성의 개수 및 각 속성의 특징을 살펴보는 일임 데이터의 기초 정보를 확인하기 위해 판다스라이브러리의 info메서드를 사용
이 데이터는 총 142개의 데이터로 구성되어 있으며 속성은 21개이다
각 속성이 142개의 값을 가진것을 보아 결측치는 없는 것을 확인 가능
데이터를 분석하기 전에 어떻게 생겼는지 확인을 해보자 전체데이터를 불러오는 방법도 있지만 가장 쉬운 방법은
head() 와 tail()을 사용하여 상단의 일부와 하단의 일부를 확인하는 것이다
데이터의 통계량을 파악하기 위해 describe() 메서드를 사용 수칫값을 갖는 속성에 대한 통계량을 출력하며 결측치는 제외됨
가장 빠른 롤러코스터 top10의 테마파크 이름 롤러코스터유형 흥미도 최고 속도를 알아보자
속도가 가장 빠른 롤러코스터를 찾으려면 최고속도 속성을 기준으로 데이터를 정렬해야 하는데
이때 사용되는 메서드는 sort_values() 이다
데이터프레임을 정렬한 결과만으로는 내가 알고싶은 특정 정보를 한눈에 파악하기 어려움 따라서 현재 정렬된 결과에서
테마파크 이름 롤러코스터 유형 흥미도 최고속도 속성만 추출해야 하는데 이때 iloc[]메서드와 슬라이싱을 사용할 수있다
아까 최고속도로 정렬한 데이터에서 내가원하는 속성들을 출력한 모습
롤러코스터의 유형 속성을 탐색하기 위해서는 유형별 고유한 값을 추출해야 한다 이때 unique()메서드를 사용하여 데이터의 고유한 값에 어떤 것이 있는지 확인 가능
unique()메서드를 통해 롤러코스터 타입이 무엇이 있는 지 확인하고 nunique()를 통해서 개수를 확인
롤러코스터 유형 속성의 유형별 개수를 파악하기 위해 value counts()메서드를 사용
실행 결과를 통해 가장많은 유형의 롤러코스터부터 내림차순으로 정렬된것을 확인 가능
이제 롤러코스터의 유형별 개수를 막대 그래프로 시각화 하여 비교
막대그래프로 시각화 하기 위해서 plot.bar()와 plt.show()를 사용
유형별 막대그래프는 출력되었으나 크기와 너비가 작고 x축 y축이 의미하는것도 잘 드러나지 않음
막대그래프의 크기와 너비를 조절하기 위해서는 figuer() x y축의 이름을 변경할려면 xlabe ylabe을 사용
막대그래프의 크기가 커지고 x축 y축의 정보가 표시되었지만 각 막대가 가르키는 롤러코스터 유형의 정확한 개수를 알수가 없음
반복문을 사용하여 롤러코스터 유형별 개수를 모두 출력해보자
동작은 잘되고 에러도 없는데 안나와서 일단 사진만 올림
처음 실행했을때 오류가나서 읽어보니 int는 len이 안된다고해서 롤러코스터 유형이 인트로 저장돼있을리 없는데 하고
확인해보니 unique를사용해서 값을 출력하고 그 개수를 확인하기위해 nunquie를 사용하여 X1이 32로 저장이 되어 있어서 실행이 안됐음
다음으로 최고속도 탑승 시간 롤러코스터 길이 최고낙하 높이 속성중 흥미도 속성과 가장 관련이 깊은 속성이 무엇일까?
이를 알기 위해서는 속성간의 관계를 수치로 파악하는 상관관계 분석을 실시해야 하며 그 후 상관관계 분석결과를 내림차순으로 정렬하여 흥미도속성과 관련이 깊은 속성을 찾으면 된다
수치값을 갖는 16개의 속성 간의 상관관계를 출력
이렇게 오류가 나서 찾아보니 데이터프레임에 문자열이 포함되어 있어 상관계수를 계산하는 과정에서 숫자로 변환할수없기 때문이라고 한다 그럼 문자열이 포함된 열을 제외하고 숫자열만 사용하도록 하면될거 같다
문자열을 제외하고 출력하니 문제 없이 나왔고 실행결과를 통해 속성 간의 상관관계가 -1.0~1.0사이의 실숫값으로 나타낸것을 확인 위의 사진과 같이 행이름과 열이름이 교차하는 지점의 수칫값은 두속성간의 상관관계를 가지는 r 값인데
같은 속성끼리는 완전이 일치하는 값을 가지기 때문에 1.0으로 나타난다
그럼 앞에 상관관계표에서 흥미도 속성만 추출하여 막대그래프로 시각화하고 각 막대의 값도 출력해보자
위의 사진을 통해 흥미도 속성은 롤러코스터의 길이 속성과 가장 관련이 깊다는 것을 확인할 수 있음
막대그래프 만으로는 흥미도속성과 상관관계가 높은 속성을 한번에 파악하기 어려울수도있으므로 sort_vlaues() 메서드를 사용하여 내림차순으로 정렬 해보자
사진을 통해 흥미도와 상관관계가 높은 속성부터 정렬된것을 확인 가능하고 롤러코스터의 길이 최고 속도 최고낙하 높이
탑승시간 외에도 상관관계가 높은 속성에는 탑승자의 무중력경험시간 평균속도 메스꺼움 등이 있는걸 확인 가능
데이터 분석을 크게 나누면 이런식으로 나눌수있을거 같다
처음하는거라 어렵지만 하루에 하나씩이라도 꾸준히해서 빠르게 익숙해져야겠음