[python] fillna, value_count()

박경국·2021년 11월 17일
0

python

목록 보기
2/8
post-thumbnail

오늘은 AI 과정 첫날입니다.
모든 걸 다 기록하기 보다는 기억에 남는 것, 두고두고 기억해야할 것(같은 것) 위주로 기록하려합니다.

마인드셋

  1. 당연히 틀릴 수 있다는 것 염두하기(완벽하려고 하지 않기)
  2. 질문을 어려워하지 않기
  3. 다른 사람과 비교하지 않기
  4. 몰입하기

부트캠프 소감(?)

오늘은 부트캠프 첫날이었다. 앞으로 7개월 동안 이렇게 살아야 한다니 조금 막막하기도 하다. 동거인에게 몹시 미안하다. 아침 9시부터 저녁 9시까지 내리 앉아있었는데, 완급조절이 필요할 것 같다. 계속 이렇게 공부하다가는 금방 탈날 것 같다. 막힐 때마다 약간의 (근거없는) 자신감을 갖고, 약간의 미소를 지으며 스스로를 탓하지 않으려고 노력했다. 덕분에 즐겁게 공부할 수 있었다.

얼마전까지 교육을 기획했었고, 잘 짜여진 교육을 참여하면서 느끼는 건 앞으로의 교육은 웹에 퍼져있는 양질의 콘텐츠를 얼마나 잘 조합하느냐 싸움일 것 같다. 이미 훌륭한 선생님이 Google에 이렇게 많은데, 굳이 한 선생님한테 배울 필요가 있을까. 널리 퍼져있는 콘텐츠를 어떻게 활용하면 좋을지 방향과 방법을 제시한다는 점에서 오늘 교육이 재밌었다. 이렇게 공부한다면 문제해결력만큼은 기를 수 있을 것 같다.

EDA

1. URL로 데이터셋 불러오기

stocks_data_url = 'https://ds-lecture-data.s3.ap-northeast-2.amazonaws.com/stocks/Travel.xlsx'

import pandas as pd
df1 = pd.read_excel(stocks_data_url, sheet_name = 0)

df1 = df1.transpose() #row와 column을 바꾼다
new_header = df1.iloc[0] #첫번째 줄을 변수명 'new_head'로 저장한다.
df1 = df1[1:] #정렬은 기존 데이터의 2번째 줄부터 시작한다.
df1.columns = new_header #'new_head'를 데이터프레임의 head로 설정한다.

df1.head()

첫 번째 시트는 0으로, 두 번째 시트는 1로 지정하여 데이터셋을 구분한다.(shett_name = 0)

2. 결측치 찾기&'0'으로 바꾸기

df1.isnull() #df1에서 missing data 찾기
df1 = df1.fillna(0) #df1의 missing data를 0으로 대체

데이터 전처리 과정에서 결측치를 찾는 것은 매우 중요하다.

3. 데이터셋 안에서 특정 데이터 찾기

num1 = df1.FCF[df1['FCF'] > 0].value_counts().sum() + df2.FCF[df2['FCF'] > 0].value_counts().sum()
num2 = df1.FCF[df1['FCF'] < 0].value_counts().sum() + df2.FCF[df2['FCF'] < 0].value_counts().sum()

df1 데이터셋 안에서(df1.FCF) 0보다 큰 데이터를 세고([df1['FCF'] > 0].value_counts) 더한다(sum())

4. 미결과제(해결함)

11.17.
파이썬으로 QQplot 그리기는 끝끝내 실패했다.
해결하면 업데이트할 것.

11.17.
문제를 해결했다. 도전과제라 이곳에 공개는 못하지만, 변수를 만들 때 하나의 column을 미리 특정했던 것이 문제였던 것 같다. 그래프를 만드는 메소드에서 보고자하는 변수를 지정해주어야 한다. 미리 변수를 저장하지 말 것.

0개의 댓글