EDA Level Test 03 복기

이재은·2024년 6월 23일

1단계: Load Data & Preprocessing

1-1. Load Target Data

문제 1-1) Target Data 가져오기

1. Encoding 설정

  • 주로 utf-8이 가장 호환성이 좋음. euc-kr은 지나간 포맷. cp-949 윈도우용
    (utf-8이 작동하지 않는 윈도우는 cp)

  • encoding_errors='ignore'

💥'euc_kr' codec can't decode byte 0xd6 in position 136: illegal multibyte sequence

> df_target = pd.read_csv("./datas/Summer-Olympic-medals-1976-to-2008.csv", encoding = "euc-kr",encoding_errors='ignore')
check_01_01(df_target)

문제 1-2) Preprocessing: missing data 처리

2. drop

https://velog.io/@dlskawns/Dataframe-내-Column-row-선택-제거-추가-변경하기pandas
1) 열(columns) 의 삭제:

df.drop(columns = ['A'])  # 한 개 열을 삭제할 때.
df.drop(columns = ['A','B'])  #여러개 열을 삭제할 때.

columns를 안쓰고 axis 설정을 통해 삭제도 가능하다
df.drop('A', axis = 1)   #한 개 열을 삭제할 때.
df.drop(['A', 'B'], axis = 1)   #여러개 열을 삭제할 때.코드를 입력하세요

2) 행(row)의 삭제:

df.drop(0)  # index 중 0 행 삭제, axis의 default값이 axis = 0이기 때문에 안쳐도 된다.
df.drop([1,2]) # 여러 행 삭제 - 1, 2 행을 삭제했다. 0과 3행만 남음

3) iloc

index location : 번호로 사용. 마지막번호 포함 안함

4) loc

location : 이름으로 사용. 마지막번호 포함

2-1. dropna

  • missing data 삭제하기(row)
df_target = df_target.dropna(axis =0)

2단계: 원하는 Data로 가공하기

문제 2-1) 2008년 대한민국 메달리스트 찾기

3. 다중조건

  • () 괄호 묶기
df_archery = df_target[ (df_target['City'] == 'Beijing') & 
                        (df_target['Sport'] == 'Archery') & 
  • ❔loc 사용
df.loc[df['Close']>=57000,'test']=1
df.loc[df['Close']<=57000,'test']=2

문제 2-2) 대한민국 역대(1976-2008) 하계 올림픽 메달 획득 내역 확인

4. drop_duplicates
https://wikidocs.net/154060

  • 중복 데이터 지우기
df_target2=df_target2.drop_duplicates(['City', 'Year', 'Sport', 'Discipline', 'Event', 'Country_Code', 'Country', 'Event_gender', 'Medal'])
df_target3 = df_target2.pivot_table(index=["Year", "Medal"], values="City", aggfunc='count', sort=True)
df_target3

5. reindex

  • 멀티 인덱스명 변경
df_kor = df_kor.reindex(['Gold', 'Silver', 'Bronze'], level=1)
> b-s-g 였던 순서가 정렬됨

문제 2-3) 1996년 애틀란타 올림픽 총 메달 개수 기준 상위 10개 국가 확인하기

6. reset_index

df_rank = df_Atlanta2.pivot_table(index = 'Country', values='Athlete' , aggfunc = 'count').reset_index().copy()
df_rank

cf) 비교 : 없이

6-1. as_index

  • groupby의 reset_index(결과 동일)
df_Atlanta2.groupby(['Country'], as_index =False)['Athlete'].count()

2-4) 1996년 애틀란타 올림픽 금매달 개수 기준 상위 10개 국가 확인하기

reset.index, pivot-group

profile
Dare to be an optimist

0개의 댓글