221012 TIL 아파트분양가 데이터/KOSIS 데이터 전처리 해보기

지구데이터·2022년 10월 12일
0
post-thumbnail

0304 apt-price

melt : tidy data로 녹이기

# pd.melt 를 사용하며, 녹인 데이터는 df_first_melt 변수에 담습니다. 

df_first_melt = pd.melt(df_first, id_vars="지역")
df_first_melt

옵션
id_vars=None,
value_vars=None,
var_name=None, value_name='value'

id는 녹이지 않고 기준이 되는 남길 값
value는 column에서 값으로 녹일 값

  • melt에서 id_vars만 설정한다면 id_vars 뺀 나머지 column이 자동으로 value_vars가 된다

str : 앞에 str 붙여야 함수 실행되는 경우가 많네!

원래 전처리가 제일 오래 걸린다

pivot_table은 groupby를 좀 더 쉽게 만든 것이다

집계란?

분양가격
평균 분양가격을 구해서 제공하고 있다
근데 한번더 평균
bar plot에서 estimator ="mean" 이게 기본값으로 되어있음 (그래프마다 표현되는 게 다르니까 다 그런 게 아닌듯)

연도별 각 지역의 평균평당분양가격(평당분양가격은 이미 개별 관측치가 x, 코로나가 개별 관측치)을 다시 평균 내서 시각화
집계값: 계산을 했다 aggregation (판다스 에서는 agg) = 계산한다
df.groupby("지역명")["평당분양가격"].agg(["mean","sum","count"])

0305 Kosis 데이터

KOSIS : 다양하게 조합/선택할 수 있는 유용한 데이터가 많음

지엘오비로 불러오기 / 경로 설정

from glob import glob
file_name = glob("data/kosis*.csv")[0]
file_name

전처리 흐름을 살펴보자!

  1. 데이터 불러오기
  2. 데이터 미리보기
  • shape/head/tail/info/isnull().sum(), 결측치 히트맵
plt.figure(figsize=(15,6))
sns.heatmap(table_year.T, annot=True, fmt=",.0f", cmap='Greens')
# annot은 과학적 표기법 출력을 의미하고, fmt는 표기법의 형식
# annot=True의 사용하여 각 셀에 값을 표기
# fmt는 문자열을 지정해주는 파라미터입니다
# fmt=".0f"은 소수점(.) 0번째 자리까지만 출력하여 정수로 표시합니다
  1. 깔끔한 데이터 만들기
  • melt -> tidy data
  1. 다시 데이터 살펴보기 & 필요없는 컬럼 빼주기
  • shape, info, dropna, nunique, drop
  1. 텍스트 전처리
  • 행/열 이름 깔끔하게 바꿔주기
  • 행/열 값 깔끔하게 바꿔주기
  • replace(,,regex=True), split(,expand=True)
    regex = True (replace) 정규표현식 쓰지 않겠다, expand = True (split)
  1. 기술통계
  • describe(수치형/범주형), df.hist(), unique, isin, groupby, nlargest
  1. 시각화
  • px.histogram
px.histogram(df_country,x="달러", y="국가권역", histfunc="sum", color="항목", barmode="group")

정규표현식

[ ] : 일치시킬 문자 세트의 패턴
[가나다] : 가 or 나 or 다 중에 하나를 포함하고 있는지
[가-힣] : 한글 가부터 힣까의 문자 중 하나를 포함하고 있는지
[0-9] : 0~9까지의 숫자 중 하나를 포함하고 있는지
[^0-9] : 숫자를 포함하고 있지 않음

[^가-힣] : 한글이 포함되어 있지 않음
[가-힣+] : 한글이 하나 이상 포함되는지

seaborn에서는 mean 기본값이다

plotly에서는 디폴트가 count인데 아무것도 없으면 sum을 한다 (mean은 avg로 표기)

px.histogram(df_country,x="달러", y="국가권역", histfunc="sum")

melt와 pivot_table 차이?

profile
멋쟁이가 될꺼야~

0개의 댓글