멋사 ai 스쿨 - (17)

eve·2022년 10월 11일
0

likeLion

목록 보기
15/45

##HomeWork_Insight
: Series는 괄호 여부에 따라 달라진다.

##Tidy Data
1. pandas는 벡터 연산을 하게 된다.
2. Tidy data를 만들려면?

  • melt: 열(column)에 있었던 데이터를 행(row)으로 녹여낸다.
  • 연도, 월 등 컬럼의 세분화 또한 포함됨
  • Tidy Data로 만들어주면 데이터 전처리, 시각화가 용이해진다.

##Practice
1. error=coerce

df_last["분양가격"] = pd.to_numeric(df_last["분양가격"], errors = "coerce")
df_last.info()

to_numeric에서는 괄호 안에 데이터프레임명 및 컬럼명을 넣어주고, 예외처리의 종류를 선택할 수 있다.
위 데이터프레임의 "분양가격" 컬럼에는 object(문자열) 자료형인 데이터가 들어가 있으므로, int형으로 강제 변경해주는 것이다.
coerce는 결측치를 Nan값으로 반환하는 옵션이며, str.replace와 정규표현식을 사용하면 숫자형 이외의 데이터들을 제외해줄 수도 있다.

df_last["분양가격"].str.replace("[^0-9]", "")

해당 정규표현식에서 '^'가 의미하는 것은 괄호 내 범주에 해당하지 않는 데이터들을 측정한다는 것이다.

  1. 컬럼명 정리하기
# 직관적 컬럼명 사용을 위해서 '규모구분'을 '전용면적'으로 변경하기
df_last["전용면적"] = df_last["규모구분"].str.replace("전용면적|제곱미터이하", "")
df_last["전용면적"] = df_last["전용면적"].str.replace("제곱미터초과", "-")
df_last["전용면적"] = df_last["전용면적"].str.replace(" ", "")
df_last["전용면적"]
  1. 불필요한 컬럼 제거하기
# drop 사용시 axis에 유의 합니다.
# axis 0:행, 1:열
df_last = df_last.drop(columns=["규모구분", "분양가격"])

컬럼을 제거해주는 이유는, 해당 컬럼들의 사본을 만들어 연산을 하고 새로운 컬럼으로 데이터프레임에 추가해주었기 때문이다.
따라서 원본 컬럼을 유지하면서 db의 용량을 낭비할 필요가 없다.
이때 .drop 함수를 사용하는데, (.dropna는 결측치 제거 함수이다)
컬럼에 대한 데이터 처리이므로 따로 axis를 표시해주지 않아도 된다.

  1. 메모리 사용량 확인
df_last.info()
  1. 예쁜 시각화
# pairplot
sns.pairplot(df_last, hue="지역명")

(알록달록 예뻤다 그래서 그냥 긁어왔다)


Quiz에서 새로 알게된 점

  1. dropna의 기본값은 axis=0이다. axis=0 는 행( row )기준이며, axis=1 는 열( column )기준이다.

  2. 컬럼의 데이터타입이 object인 경우, .datetime을 사용해주어야 dt anscessor을 사용할 수 있다.

profile
유저가 왜 그랬을까

0개의 댓글