빅분기 모의고사 오답노트 1

SeongGyun Hong·2024년 11월 23일

빅데이터 분석기사

목록 보기
13/16

1. 데이터프레임 전치

아 ;;; 이걸 까먹었네...
df.T
이러면 column 과 index 가 전치된다.

2. period 객체와 TimeStamp 객체는 비교 불가

temp = df[df['date_added'].dt.to_period('M') == "2018-01"]

위 코드는 우측이 단순 문자열처럼 보이지만, pandas 내부에서 자체적으로 period 객체로 변형시켜서 비교하기에 연산이 되나

아래 코드에서

temp = df[df['date_added'].dt.to_period('M') == pd.to_datetime("2018-01", foramt = "%Y-%m")]

이렇게 한 것은 비교할 수가 없어 False가 계속 떠서 잡히는 필터링이 하나도 없게 된다.

왜냐하면 period 객체와 TimeStamp 객체는 비교가 불가하기 때문

3. 문자열 안에 대소문자가 혼용되어 난리인 경우

.str로 접근한 후에
.lower()를 통해서 전부 소문자로 만들어 주자...

만약 문자열 안에 공백도 섞이고 그랬다면

.str 로 마찬가지로 접근한 후에
.replace(' ', '') 이런 식으로 처리해주자.

반대로 대문자로 바꾸고싶다?

.str 로 접근하고
.upper() 로 키워주자

4. 다중정렬과 복수 정렬 차이

temp = df.sort_values(by = 'f4', ascending = False).sort_values(by = 'f5', ascending = True)

위 코드와

temp = df.sort_values(by = ['f4','f5'], ascending = [False, True])

위 코드는
다르다...

첫번째꺼는 그냥 정렬을 덮어씌우는 거고 (헛수고)

두번쨰 거는 먼저 첫번째 기준에 따른 후에
동순위에 있는 것에 한하여 두번째 기준을 따르는 것.

주의하자!!!!

5. IQR방식, std 방식 이상치 개수

IQR할때는

IQR_3 = target.age.quantile(0.75)
IQR_1 = target.age.quantile(0.25)
IQR = IQR_3 - IQR_1

항상 잊지 말자..!

std 방식의 이상치 검출은
mean + 1.5*std
mean - 1.5*std
임을 주의!

6. isnull()은 null 이어야 True 뱉음

f1 칼럼에서 결측치가 있는 것을 따로 뽑아
해당 데이터에서 f5의 중앙값을 구하라는 코드는


target = df[df['f1'].isnull()]
answer = target.f5.median()

이게 맞지

괜히 ~ 넣지 말자...


target = df[~(df['f1'].isnull())]
answer = target.f5.median()

이거 아니다...

isnull()은 null 인 값에 대하여 True를 null이 아닌 값에 대하여 False를 뱉음.

profile
헤매는 만큼 자기 땅이다.

0개의 댓글