오늘은 계획했던 대로 강의를 모두 다 끝냈다. 그리고 본 캠프의 과제도 1, 2, 3번 추가와 도전 과제까지 모두 마무리했다.
오랜만에 보는 내용도 있었고, 많이 다뤄보긴 했지만 몰랐던 내용도 꽤 있었다. 처음 파이썬 부분에서는 클래스가 조금 어려웠지만
라이브러리 부분에서는 판다스의 많은 기능이 조금 헷갈렸던 것 같다.
그래도 강의 듣고 실습을 해보면서 조금 익숙해져서 다행이다.
sample
지금까지 데이터프레임을 확인할 때면 그냥 전체를 출력하거나 .head, .tail만 사용했지만, 무작위로 확인하려고 할 때는 sample을
이용할 수 있다는 것을 알았다.
df.sample(n)
을 입력하면, n개의 샘플을 추출해서 보여준다.
iloc와 loc의 차이점
예전에는 그냥 loc만 사용하고 iloc이랑 차이가 뭔지 정확하게는 몰랐는데, iloc은 앞의 i가 int로 정수 인덱스를 사용하는 것이고,
loc은 라벨(인덱스, 컬럼명 등)을 이용해서 특정 데이터를 조회한다고 한다.
df.loc[0, '이름']
df.iloc[0, 1
이런 식으로 loc의 경우에는 라벨을, iloc는 정수 인덱스만 사용한다.
데이터프레임의 index set에 대해서
dataframe에서 .set_index('열 이름')을 사용하면 해당 열을 인덱스로 설정할 수 있다.
이는 나중에 join을 이용해 데이터프레임을 합칠 때 잘 쓰이므로, 알아두면 좋은데 중요한 점이 있다.
df = df.set_index('a열')
df = df.set_index('b열')
먼저, set_index를 그냥 하면 저장이 되지 않으므로 데이터프레임에 저장을 해주어야 한다.
그리고, 먼저 a열을 index로 설정했는데 다음에 b열을 index로 설정한다면, a열은 값의 형태가 아니라 index의 형태였기
때문에 b열을 index로 출력했을 때 a열은 사라진다.
dropna에 대해서
이 dropna 메소드는 결측치를 제거할 때 쓰이는데, 이 때
df.dropna()
를 하면 데이터프레임 전체에서 결측이가 있는 행이 사라지며,
df['열 이름'].dropna()
를 하게 되면 해당 열에서 결측치 있는 행이 사라진다.
그리고 dropna() 의 괄호 안에는 (axis = 0)이 생략되어 있는데,
dropna(axis = 1)을 하게 되면 결측치가 있는 열이 사라지게 된다.
IQR(InterQuartile Range)에 대해서
이것은 이상치를 제거하는 경우에 많이 사용되는데, IQR = Q3 - Q1이다.
이 때 Q3 와 Q1이라는 것은 사분위수로, Q1은 1사분위수, Q3는 3사분위수이다.
1~100이 있다고 쳤을 때 4등분을 하면 25가 Q1, 75가 Q3이며 IQR = 75 - 25 = 50이다.
어떤 변수가 있을 때 이 Q1, Q3, IQR을 이용해 범위를 만듦으로써 이 범위 밖에 있는 값은 이상치가 된다.
이것은 상황에 맞춰서 잘 사용해야 하는데, 무작정 IQR을 사용해버리게 되면 중요한 값이 사라질수도 있는 것이다.
예를 들어서 '나이'라는 열이 있고, 이 값들에 대해서 IQR을 사용하려고 하는데 값들이 2~30세에 몰려있는 경우,
16 <= 나이 <= 60 이런 형태의 범위가 생길 수 있다.
이 뜻은, 나이가 16세 미만이거나 60세 초과이면 이상치로 판단한다는 것인데 이 경우 중요한 값들이 많이 사라질 수 있다.
이상치라는 것은 예를 들면 키를 재는데 5미터이거나, 나이가 160세인 등 정말 이상한 값을 이상치라고 하므로 각 데이터의
특성에 따라서 이상치를 어떻게 탐지하고 처리할지 잘 생각해보아야 한다.
오늘도 공부를 하면서 여러가지 내용들을 알게 되었는데, 이제 이 내용들을 얼마나 잘 적용시키느냐가 중요한 것 같다. 애매한
이론이 있으면 다시 돌아와서 공부를 할 것이고, 아는 내용이라도 여러 가지 방법을 시도하면서 내 능력을 키우려고 할 것이다.
항상 발전하는 삶을 살아야지. 내일도 화이팅
'공부노트' 카테고리의 다른 글
12/5, 아홉 번째 날의 TIL (1) | 2024.12.05 |
---|---|
12/4, 여덟 번째 날의 TIL (2) | 2024.12.04 |
12/2, 여섯 번째 날의 TIL (1) | 2024.12.02 |
11/25 ~ 11/29, 첫 주의 WIL (5) | 2024.11.29 |
11/29, 다섯번째 날의 TIL (0) | 2024.11.29 |