Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

배우고 느낀 것들

패스트캠퍼스 5주차 EDA 본문

파이썬/강의

패스트캠퍼스 5주차 EDA

낑깡H 2022. 9. 23. 09:58

<스타벅스 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