배우고 느낀 것들
패스트캠퍼스 5주차 EDA 본문
<스타벅스 EDA>
from google.colab import drive
drive.mount('/content/drive')
# 데이터 분석 필수 라이브러리 4종 세트 불러오기
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# Starbucks Customer Data 폴더안에 있는 데이터 3개를 불러오기
base_path = "/content/drive/MyDrive/Colab Notebooks/data/Starbucks Customer Data/"
transcript = pd.read_csv(base_path + "transcript.csv").drop(columns=["Unnamed: 0"]) #자동으로 생성되는 1열 제거하는 3가지 방법
profile = pd.read_csv(base_path + "profile.csv").drop("Unnamed: 0", axis=1)
portfolio = pd.read_csv(base_path + "portfolio.csv").drop(columns=["Unnamed: 0"])
# 결측치를 포함하는 데이터들은 어떤 데이터들인지 확인합니다.
#profile.isnull() 하면 null인 값들이 true
#.any(axis=1) 하면 한개라도 null 있는 행 다 출력
#profile[] 안에 넣으면 nan인 애들 전체 출력
nulls = profile[profile.isnull().any(axis=1)]
# 결측치를 처리해줍니다. # 평균과 같은 통계량으로 채워주거나, 버립니다.
profile = profile.dropna() #na 가 있는 값 다 제거
profile.info()
# profile의 became_member_on 데이터를 시간 정보로 변환해줍니다.
profile.became_member_on = pd.to_datetime(profile.became_member_on.astype(str), format='%Y %m %d')
#yyyy-mm-dd 로 표현된 became~ 값 연, 월로 쪼개기
profile["join_year"] = profile.became_member_on.dt.year
profile["join_month"] = profile.became_member_on.dt.month
#join year countplot
plt.figure(figsize=(8, 6))
sns.countplot(data=profile, x="join_year")
plt.show()
#join month countplot : 정렬해서 표현하기
A = profile.join_year.value_counts().index
B = profile.join_year.value_counts().values
plt.figure(figsize=(8, 6))
sns.barplot(x=A, y=B, order= A)
plt.show()
<Kaggle Survey>
# 결측치가 너무 많은 경우 dropna 하면 안됨!!
# 잘라온 데이터에서 한국은 어떤 텍스트로 표현이 되는지 찾아보세요.
#survey.Q3.unique() : 응답값들 확인
#survey.Q3.str.contains("Korea") : Q3의 값들이 korea를 포함하는지 masking, but north korea처럼 korea가 들어간 다른 값도 포함될것
# survey[survey.Q3.str.contains("Korea")]["Q3"] 으로 직접 확인하거나
#survey.loc[survey.Q3.str.contains("Korea"), "Q3"].unique() : korea 들어간 건 southkorea밖에 없음
피벗 테이블 만들기
countries = pd.pivot_table(data=survey.loc[1:, ["Q3", "Q4"]], index="Q3", columns="Q4", aggfunc={"Q4":"count"},fill_value=0)
#columns="Q4"를 value="Q4"로 하면 각 나라의 값 수... 즉 아무 의미 없는 자료
#loc[1:, ["Q3","Q4"]]를 넣음으로써 Q3,Q4의 값만 고려함
#fill_value: 해당 사항이 없어 NaN인 부분 0으로 바꿔줌
countries
'파이썬 > 강의' 카테고리의 다른 글
[구름] 2일차 (0) | 2022.11.08 |
---|---|
[구름] 1일차 (0) | 2022.11.07 |
패스트캠퍼스 4주차 요약 (0) | 2022.09.15 |
[언분프] 1주차 (0) | 2022.09.08 |
패스트캠퍼스 3주차 요약 (0) | 2022.09.07 |
Comments