1. 파이썬에서의 반복문을 배울 때 기초적으로 배열 내에서 값 n(item)을 불러오는 경우와, range()를 통한 단순반복문을 사용하는 경우를 배운다.
# 예 1
runningMan = ['유재석', '김종국', '하하', '전소민', '이광수','송지효','양세찬', '지석진','강개리']
for runner in runningMan:
print(f'런닝맨의 멤버는: {runner}')
# 예 2
for i in range(0,10):
print(i, end=',')
이광수...강개리...전소민...영원히 잊지 않을게...!
2. 이같은 반복문의 형태는 모든 언어에서 나타난다.
# js의 경우
for (i=0; i<10; i++){
console.log(i)
}
runningMan = ['유재석', '김종국', '하하', '전소민', '이광수','송지효','양세찬', '지석진','강개리']
runningMan.forEach(runner => {
console.log('런닝맨 멤버는: ' + runner)
});
3. python의 경우, 배열 안에 반복문을 넣어 여러 줄의 코드를 한 줄로 최소화할 수 있다. 이를 리스트 컴프리헨션(List Comprehension, 리스트 내포)라고 한다.
runner = [runner for runner in runningMan]
print(runner)
4. Pandas라이브러리의 경우에도 반복문을 순회하기 위한 좋은 반복문용 명령이 있다. iterrows()이다.
- Pandas 데이터 프레임은 대부분 2차원이다.
- 이럴 때 for문을 사용하면 n번째라는 지정을 반복해서 가독률이 떨어진다.
- Pandas 데이터 프레임으로 반복문을 만들 때, iterrows()라는 옵션을 사용하면 편하다.
- 다만, 받을 때 인덱스와 내용으로 받는 것을 주의해야 한다.
seaborn에 대하여
5. seaborn은 matplotlib의 데이터 시각화를 더 보기 좋게 해주는 라이브러리이다.
일반적으로 import seaborn as sns와 같은 형식으로 불러온다. (물론 pip install seaborn과 같이 프로젝트에 직접 설치해도 된다)
seaborn에서 단 몇 줄의 코드만으로 그래프의 스타일이 바뀌는 예를 보자.






6. seaborn에는 실습용 데이터가 몇 개 내장되어 있다. sns.load_dataset('tips')로 이를 불러올 수 있다.

7. boxplot을 그려볼 수도 있다.

* 박스플롯이란?
8. 박스플롯(boxplot)은 데이터의 분포와 이상치를 시각화하는데 사용되는 통계 도구이다. 주로 데이터의 중앙값(median, 평균값(average)가 아님), 사분위수, 최솟값, 최댓값 등을 시각적으로 표현하여, 데이터의 분포를 쉽게 이해하고 비교할 수 있도록 도와준다.
박스플롯은 다음과 같이 구성된다.
- 상자(Box): 데이터의 중간 50%인 사분위수(데이터를 크기순으로 정렬했을 때 25%~75% 범위에 해당하는 값)를 나타낸다. 상자의 아랫부분은 1사분위수(Q1)이고, 상자의 윗부분은 3사분위수(Q3)이다. 상자의 높이는 데이터의 중앙값(median)을 나타낸다.
- 수염(Whiskers): 상자 부분에서 일정 비율만큼의 거리를 벗어나는 데이터를 표시한다. 수염의 길이는 주로 IQR(Interquartile Range, 사분위 범위)를 기준으로 결정되며, 일반적으로 1.5배 IQR을 넘어가는 경우 이상치로 간주된다.
- 이상치(Outliers): 수염 부분 바깥에 위치한 데이터를 나타낸다. 이상치는 주로 수염의 길이를 기준으로 판단되며, 일반적으로 수염의 길이의 1.5배 이상 떨어진 데이터를 이상치로 간주한다.
9. 박스플롯에 칼럼을 지정해서 볼 수도 있다.

10. hue는 데이터를 추가적인 범주형 변수로 분할하여 사용하도록 해주는 매개변수이다.

11. swarmplot()이라는 기능도 있다. 이는 scatter와 비슷하게 점들의 분포도를 보여주는 기능이다.

12. linear regression plot을 그려주는 lmplot() 기능도 있다. 선형회귀모델을 시각화해주는 함수이다.

* lmplot기능의 경우, 이전 버전의 seaborn에서는 size매개변수를 통해 그래프의 크기를 설정해줄 수 있었다. 최신 버전에서는 height를 설정하고, aspect(가로:세로 비율, 1.5를 입력하면 가로가 세로의 1.5배가 된다)를 설정해서 사이즈를 조정해준다.

13. lmplot에서도 hue 옵션을 적용해줄 수 있다.


14. 또 다른 데이터로 flights가 있다.

15. pivot()기능을 사용하여 데이터를 좀 더 보기 좋게 정렬하자.

16. heatmap을 이용하면 전체 경향을 더 멋있게 나타낼 수 있다.


복잡해보이는 이유는 색상이 다소 눈에 확 들어오지 않아서이다. cmap매개변수를 통해 색상을 변경해줄 수 있다.

'데이터분석' 카테고리의 다른 글
| # 중급 03. List형 데이터 다루기 (6) | 2024.03.23 |
|---|---|
| # 중급 02. seaborn dataset(iris, anscombe) (2) | 2024.03.23 |
| 기초 03. matplotlib 한글 설정 (0) | 2024.03.02 |
| 기초 02. Jupyter notebook 설치(Windows) (0) | 2024.03.02 |
| 기초 01. 미니콘다 설치하기(Windows) & 환경설정 (1) | 2024.03.02 |