EDCAN
We are Creators
EDCAN
전체 방문자
오늘
어제

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (13)
    • 소식 (1)
    • 개발 (7)
    • 디자인 (0)
    • 대회 (0)
    • 교내 행사 (1)

공지사항

  • We are Creators, EDCAN

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
EDCAN

We are Creators

개발

[Python] Pandas에서 데이터 전처리 하기

2023. 12. 13. 16:59

이 글은 Pandas에서 데이터 전처리 하는 방법을 공부하고 정리한 글 입니다.

w3school의 해당 강의를 참고하며 공부했습니다.

데이터 전처리란

우리의 데이터가 항상 깔끔했으면 좋겠지만 아닌 경우가 너무 많다.
다음과 같은 경우가 있다.

  • 데이터의 셀이 비어있다.
  • 데이터 형식이 잘못되었다.
  • 너무 크거나 작은 데이터가 있다.
  • 중복된 데이터가 있다.

이런 경우에 데이터 분석에 영향을 없애기 위해서 처리를 해줘야 한다.

비어있는 데이터 전처리

데이터의 셀이 비어있는 경우
해당 데이터의 행을 지워버리거나 비어있는 셀을 특정 값으로 채워 넣을 수 있다.

new_df = df.dropna()

dropna() 함수를 사용하면 비어있는 셀이 있는 모든 행을 삭제한다.

데이터의 양이 많거나 삭제하는 행이 적을때는 문제가 되지 않지만
데이터 양 자체가 적거나 너무 많은 행을 삭제할때는
다른 방법을 사용하는게 좋다.

newdf = df.fillna(100)

fillna() 함수를 사용하면 인자로 들어온 값으로 비어있는 셀 전체를 채운다.

newdf = df["Calories"].fillna(100)
df["Calories"] = newdf
df.head(100)

fillna() 함수는 시리즈에도 적용해서 특성 열만 전처리가 가능하다.

평균값 = df["Calories"].mean()
중앙값 = df["Calories"].median()
최빈값 = df["Calories"].mode()

print(평균값, 중앙값, 최빈값)

채워넣는 값은 임의의 값이 아니라 보통 평균값, 중앙값, 최빈값을 사용한다.
각각의 값은 mean(), median(), mode() 함수를 사용해서 구해준다.

잘못된 데이터 전처리

데이터의 값이 너무 크거나 작은 경우 수동으로 전처르 해줄 수 있다.

df.loc[7, "Duration"] = 1

해당 코드는 7번 행의 "Duration"열의 값을 1로 수정하는 코드다.
이때 수정하는 값은 평균값, 중앙값, 최빈값 등을 사용 할 수 있다.

mean_value = df["Duration"].mean()

for index in df.index:
    if df.loc[index, "Duration"] > 100:
        df.loc[index, "Duration"] = mean_value

너무 많은 값을 수동으로 전처리 해주기는 힘들기 때문에
for 문을 사용해서 자동으로 평균값으로 입력 해줄 수 있다.

for index in df.index:
    if df.loc[index, "Duration"] > 100:
        df.drop(index, inplace=True)

혹은 기준에 넘는 행을 삭제 할 수 있다.

중복된 데이터 전처리

df.duplicated()

df.duplicated() 함수를 사용하면 중복된 행이 있는지 탐색하고
결과를 각각의 bool값을 가진 시리즈를 반환한다.

new_df = df.drop_duplicates()

df.drop_duplicates() 함수를 사용하면 중복된 행들은 삭제한 결과를 반환한다.

저작자표시 (새창열림)

'개발' 카테고리의 다른 글

[Android] 여러 프래그먼트에서 공유되는 ViewModel 만들기  (0) 2023.12.13
[React.js] React Router 사용법  (0) 2023.12.13
[Python] Pandas 기초 공부해보기  (0) 2023.12.13
EDCAN 10기 부원들을 위한 FireBase Guide 2  (0) 2023.06.12
EDCAN 10기 부원들을 위한 FireBase Guide  (0) 2023.06.06
    '개발' 카테고리의 다른 글
    • [Android] 여러 프래그먼트에서 공유되는 ViewModel 만들기
    • [React.js] React Router 사용법
    • [Python] Pandas 기초 공부해보기
    • EDCAN 10기 부원들을 위한 FireBase Guide 2
    EDCAN
    EDCAN
    선린인터넷고등학교 모바일 콘텐츠 동아리, EDCAN의 이야기입니다.

    티스토리툴바