오늘은 데이터 전처리, 시각화 강의를 학습을 마쳤습니다!
pandas와 matplotlib 을 활용한 기초적인 전처리와 시각화였습니다.
데이터 불러오기
csv 파일 : pd.read_csv('파일경로.csv') excel 파일 : pd.read_excel('파일경로.xlsx')
데이터 저장하기
pd.to_csv('파일명지정.csv', index=False) -> index가 자동으로 설정되어 추가되는데 기존 인덱스를 사용하겠다면 index=False를 통해서 인덱스없이 저장할 수 있다.
데이터 합치기(Merge)
pd.merge(data1, data2, axis=0 or 1, on='컬럼명', how='inner') -> data1과 data2 합치기 -> axis : 0은 밑으로(기본값), 1은 가로로 연결 -> on : 어떤 컬럼을 기준으로 join할건지 지정 -> how : sql에서 교집합, 합집합을 지정할 수 있다.(inner, outer, left, right)
데이터 그룹화
df.groupby('컬럼명').집계함수() -> 컬럼명을 기준으로 그룹화를 진행 -> 그룹화된 컬럼의 속성값으로 집계함수를 적용해준다 # aggregation 메서드 df.groupby('컬럼명').agg(list) -> 그룹화된 컬럼의 속성값을 모아서 list 형태로 보여줌
pivot 테이블
df.pivot_table(index='컬럼명', columns='컬럼명', values='컬럼명', aggfunc='집계함수명') -> index, columns, values 를 컬럼별로 지정가능 -> values는 숫자형 데이터여야 집계함수 적용이 가능하다. -> aggfunc은 values가 어떤 집계함수를 적용할 지 지정한다.
정렬기능
df.sort_values(by='컬럼명', ascending=False) -> by에 지정한 컬럼을 기준으로 정렬 -> ascending 은 기본 True임, 오름차순이고 False로 하면 내림차순 df.sort_index(ascending=False) -> 인덱스 정렬 내림차순, 올림차순하고 싶으면 ascending 제외해도 됨
'맷플롯립'이라 부르면서 뒤에 립은 라이브러리의 약자이다. 맷플롯라이브러리를 가져다 쓰는거다.
시각화 중에서도 표현하는 방식을 제외한 그래프의 디자인을 설정하는 부분은 대게 똑같거나 비슷하다. 그래프 종류 다음에 디자인 설정 순으로 정리
# 라이브러리 호출 import matplotlib.pyplot as plt # 기본 구조 plt.figure(figsize=(10,10)) : 그래프 사이즈 지정 plt.plot(x, y, 기타 디자인설정) : plot 이외의 그래프로 바뀔 수 있음 plt.xlabel('text 지정') : x축 명칭 plt.ylabel('text 지정') : y축 명칭 plt.title('title text 지정') : 타이틀 명칭 plt.legend() : 범례 설정 plt.show() : 작성된 그래프 호출
그래프
# plot df.plot(x = '컬럼명', y = '컬럼명') # bar df.bar(x = '컬럼명', y = '컬럼명') : 세로 막대 df.barh(x = '컬럼명', y = '컬럼명') : 가로 막대 # histogram df.hist(data명, bins=30) -> bins는 데이터 분산 정도를 나타내는데 이건 보면서 적당한 수치로 지정해야함 # pie df.pie(수치 데이터컬럼, labels=라벨로 사용할 컬럼 또는 리스트) # boxplot df.boxplot(연속형이나 수치형 리스트, labels=x축의 구분이 되는 라벨 지정) # scatter df.scatter(x축, y축)
그래프 디자인 설정
plt.plot( color= 'g', linestyle='--', marker='o', label='라벨명') -> plot의 색상, 라인스타일, 데이터 지점마다의 마커를 찍어줄 수 있음 -> 라벨은 plot의 범례를 표현해준다. plt.legend(['라벨명']) : 범례 지정 plt.xlabel('x축 이름') plt.ylabel('x축 이름') plt.title('title명') plt.text(4, 2, 'Some Text', fontsize=12) : 그래프 속에 라벨을 지정해줄 수 있다.
plot 변수 지정하여 설정하는 법
ax = df.plot(x='A', y='B') ax.legend(['Data Series']) ax.set_xlabel('X-label') ax.set_ylabel('Y-label') ax.set_title('Title') plt.show() -> ax 라는 변수에 그래프를 지정하게되면 변수명을 그대로 받아서 plt자리에 사용 가능 -> set_~을 사용하여 변수(ax)로 만들어진 plot그래프의 설정을 다시 설정한다고 생각하자
상관관계 계수 구하는 함수
df.corr(numeric_only=True) -> numeric_only는 데이터에 숫자형 데이터 외의 데이터들을 빼고 보여주는 것이다. -> 전처리 과정이 번거롭다면 빠르게 사용할 수 있음