지금은마라톤중

멋사 AI스쿨 TIL - (10) 본문

멋쟁이사자처럼/Python

멋사 AI스쿨 TIL - (10)

달리는중 2023. 1. 31. 09:16

2023.01.30

EDA 수업이 시작되었다.

 

시각화 도구 생태계

- matplotlib는 정적인 시각화

- javascript이 좀 더 동적인 시각화

- 그리고 맷트폴립이 사용이 복잡하여 주변에 다른 도구들이 있음.

 

● 한글폰트 사용을 위해 설치

- matplotlib에서 한글폰트를 사용하기 위해서는 설치가 필요하다.
ex) !pip install koreanize-matplotlib

 

● glob

- 원하는 경로에 있는 파일을 보는 라이브러리

# glob를 임포트하고 /*을 통해 경로에 있는 파일들을 확인할 수 있다.
# * 앞에 원하는 규칙을 넣을 수 있다. 

from glob import glob

files = glob("data/seoul*.csv")
file_paths = sorted(files)
file_paths

 

● set_index("컬럼명")

- 컬럼을 인덱스로 지정해준다.

- ex ) df = df.set_index("연번")
- 인덱스 지정 1번하면 그 다음에 코드 다시 실행했을 때 오류가 발생

- 지정할 컬럼이 이미 인덱스로 적용되어 컬럼이 존재하기 때문이다.

 

● describe에서 

- top은 최빈값,

- freq는 최빈값의 빈도수

- unique : 중복을 제외한 유일값

 

 

● .to_datetime()

- object 타입의 데이터를 날짜 데이터로 바꿈.

- ex) df['확진일'] =  pd.to_datetime(df['확진일'])

 

● 날짜 데이터에서 연, 월, 일 , 요일을 추출하는 방법

- df["월"] = df['확진일'].dt.month
- df["일"] = df['확진일'].dt.day
- df["요일"] = df['확진일'].dt.weekday  

* weekday == dayofweek

 

● 연도월로 컬럼 만들기

- 연도와 월로만 구성된 컬럼
- 날짜형 데이터이기 때문에 문자열로 바꾸어야한다.

1) 연도와 월 따로 변화하여 붙이기

df["연도"].astype(str) + "-" + df["월"].astype(str)

 

2) 문자열 슬라이싱
df['연도월'] =  df['확진일'].astype(str).str[:7]

 

● 요일을 한글로로 바꾸기

1) 함수 정의

2) lambda

# map을 사용해서 요일 컬럼을 요일명으로 변환하고 "요일명"이라는 새로운 컬럼에 저장하기
# 이름이 있는 함수로 정의하여 사용
def find_dayofweek(day_no):
    
    dayofweek = "월화수목금토일"
    
    return dayofweek[day_no]

df["요일명"] = df['요일'].map(find_dayofweek)

#lambda : 이름이 없는 익명함수
df["요일명"] = df['요일'].map(lambda x : '월화수목금토일'[x]) 
df

 

● 전체 수치 변수 히스토그램으로 표현

# df.hist로 히스토그램 그리기
# bins : 막대수
# figsize : (행,열)
df.hist(bins =50, figsize=(12,6))

 

 

● .value_counts

- 값의 수를 측정

 

● .to_frame()

- Series를 데이터프레임으로 변환

 

● .sort_index()

- 인덱스로 정렬

 

● .fillna()

- 비어있는 결측값을 채워줌.

 

 

🙋🏻‍♂️질문 : df["연도"].value_counts(normalize=True) == df["연도"].value_counts(1) 왜 같은 결과가 나올까요?

- 1 : true,  0 : false 이기 때문에 nomalize

 

🙋🏻‍♂️질문 :  NA 는 무엇의 약자일까요? 무엇을 의미할까요?

not applicable(결측값)

 

🙋🏻‍♂️질문 : 꺾은선 그래프에서 y값을 0부터 표현하는 방법이 있나요??
plot ( ... , ylim = [시작값,끝값]) 설정해주시면 됩니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'멋쟁이사자처럼 > Python' 카테고리의 다른 글

멋사 AI스쿨 TIL - (12)  (1) 2023.02.01
멋사 AI스쿨 TIL - (11)  (0) 2023.01.31
멋사 AI스쿨 WIL - (9)  (0) 2023.01.19
멋사 AI스쿨 WIL - (8)  (0) 2023.01.12
멋사 AI스쿨 TIL - (7)  (0) 2023.01.06
Comments