본문 바로가기

반응형

데이터 분석 학습

(45)
9장 데이터 분석 프로젝트 - 한국인의 삶을 파악하라! (2) 9-2 성별에 따른 월급 차이 - 성별에 따라 월급이 다를까? 분석 절차 1단계 - 변수 검토 및 전처리 성별 월급 2단계 - 변수 간 관계 분석 성별 월급 평균표 만들기 그래프 만들기 성별 변수 검토 및 전처리하기 1. 변수 검토하기 2. 전처리하기 welfare['sex'].dtypes # 변수 타입 출력 ##출력: dtype('float64') welfare['sex'].value_counts() # 빈도 구하기 """ 2.0 7913 1.0 6505 Name: sex, dtype: int64 """ # 이상치 확인 welfare['sex'].value_counts() """ 2.0 7913 1.0 6505 Name: sex, dtype: int64 """ # 이상치 결측 처리 welfare['se..
9장 데이터 분석 프로젝트 - 한국인의 삶을 파악하라! 9-1 '한국복지패널 데이터' 분석 준비하기 (1) '한국복지 패널 데이터'는 한국보건사회연구원에서 우리나라 가구의 경제활동을 연구해 복지 정책에 반영할 목적으로 발간하는 조사 자료 데이터 분석 준비하기 1. 데이터 준비하기 2. 패키지 설치 및 로드하기 3. 데이터 불러오기 4. 데이터 검토하기 5. 변수명 바꾸기 !pip install pyreadstat """ Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/ Collecting pyreadstat Downloading pyreadstat-1.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2..
8장 그래프 만들기 (4) 8-5 상자 그림 - 집단 간 분포 차이 표현하기 상자 그림(box plot): 데이터의 분포 또는 퍼져 있는 형태를 직사각형 상자 모양으로 표현한 그래프 상자 그림 만들기 sns.boxplot(data = mpg, x ='drv', y ='hwy') 혼자서 해보기 - mpg 데이터를 이용해 분석 문제를 해결해 보세요 Q1 category(자동차 종류)가 'compact', 'subcompact', 'suv'인 자동차의 cty(도시 연비)가 어떻게 다른지 비교해 보려고 합니다. 세 차종의 cty를 나타낸 상자 그림을 만들어 보세요. df = mpg.query('category in ["compact", "subcompact", "suv"]') sns.boxplot(data = df, x = 'catego..
8장 그래프 만들기 (3) 8-4 선 그래프 - 시간에 따라 달라지는 데이터 표현하기 선 그래프(line chart): 데이터를 선으로 표현한 그래프 시계열 그래프 만들기 economics = pd.read_csv('economics.csv') economics.head() sns.lineplot(data = economics, x = 'date', y = 'unemploy') x축에 연도 표시하기 1) 날짜 시간 타입 변수 만들기 # 날짜 시간 타입 변수 만들기 economics['date2'] = pd.to_datetime(economics['date']) # 변수 타입 확인 economics.info() """ RangeIndex: 574 entries, 0 to 573 Data columns (total 7 columns)..
8장 그래프 만들기 (2) 8-3 막대 그래프 - 집단 간 차이 표현하기 막대 그래프(bar chart): 데이터의 크기를 막대의 길이로 표현한 그래프 평균 막대 그래프 만들기 1. 집단별 평균표 만들기 df_mpg = mpg.groupby('drv').agg(mean_hwy = ('hwy', 'mean')) df_mpg df_mpg = mpg.groupby('drv', as_index = False).agg(mean_hwy = ('hwy', 'mean')) df_mpg 2. 그래프 만들기 sns.barplot(data = df_mpg, x ='drv', y='mean_hwy') 3. 크기순으로 정렬하기 df_mpg = df_mpg.sort_values('mean_hwy', ascending = False) sns.barplot(..
8장 그래프 만들기 (1) 8-1 파이썬으로 만들 수 있는 그래프 살펴보기 파이썬에는 2차원, 3차원, 지도, 네트워크, 모션 차트, 인터랙티브 그래프 등 다양한 그래프를 만들 수 있는 패키지가 있음 seaborn을 이용하면 쉽게 그래프를 만들 수 있음 # 그래프 해상도 설정 import matplotlib.pyplot as plt plt.rcParams.update({'figure.dpi' : '100'}) %config InlineBackend.figure_format = 'retina' 8-2 산점도: 변수 간 관계 표현하기 산점도(scatter plot): 데이터를 x축과 y축에 점으로 표현한 그래프 산점도 만들기 import pandas as pd mpg = pd.read_csv('mpg.csv') import seabo..
7장 데이터 정제 - 빠진 데이터, 이상한 데이터 제거하기 (3) 7-2 이상한 데이터를 찾아라! - 이상치 정제하기 이상치 제거하기-극단적인 값 극단치(outlier) 상자 그림(box plot)으로 극단치 기준 정하기 1. 상자 그림 살펴보기 mpg = pd.read_csv('mpg.csv') import seaborn as sns sns.boxplot(data = mpg, y = 'hwy') 2. 극단치 기준값 구하기 1) 1사분위수, 3사분위수 구하기 pct25 = mpg['hwy'].quantile(.25) pct25 ##출력: 18.0 pct75 = mpg['hwy'].quantile(.75) pct75 ##출력: 27.0 2) IQR(inter quartile range, 사분위 범위) 구하기 iqr = pct75 - pct25 iqr ##출력: 9.0 3..
7장 데이터 정제 - 빠진 데이터, 이상한 데이터 제거하기 (2) 7-2 이상한 데이터를 찾아라! - 이상치 정제하기 이상치(anomaly): 정상 범위에서 크게 벗어난 값 이상치 제거하기-존재할 수 없는 값 df = pd.DataFrame({'sex' : [1,2,1,3,2,1], 'score' : [5,4,3,4,2,6]}) df 이상치 확인하기 df['sex'].value_counts().sort_index() """ 1 3 2 2 3 1 Name: sex, dtype: int64 """ df['score'].value_counts().sort_index() """ 2 1 3 1 4 2 5 1 6 1 Name: score, dtype: int64 """ 결측 처리하기 df['sex'] = np.where(df['sex'] == 3, np.nan, df['sex']..
7장 데이터 정제 - 빠진 데이터, 이상한 데이터 제거하기 (1) 7-1 빠진 데이터를 찾아라! - 결측치 정제하기 결측치(missing value) ckwrl 결측치 만들기: NumPy 패키지의 np.nan 입력 import pandas as pd import numpy as np df = pd.DataFrame({'sex' : ['M', 'F', np.nan, 'M', 'F'], 'score' : [5,4,3,4, np.nan]}) df df['score'] + 1 """ 0 6.0 1 5.0 2 4.0 3 5.0 4 NaN Name: score, dtype: float64 """ 결측치 확인하기: pd.isna()에 df를 입력하면 결측치는 True, 결측치가 아닌 값은 False pd.isna(df) 결측치 제거하기 df.dropna()를 이용하면 결측치가 있는..
6장 자유자재로 데이터 가공하기 (7) 정리하기 ## 1. 조건에 맞는 데이터만 추출하기 exam.query('english = 50') # 여러 조건 중 하나 이상 충족 exam.query('math >= 90 | english >= 90') exam.query('nclass in [1, 3, 5]') ## 2. 필요한 변수만 추출하기 exam['math'] # 한 변수 추출 exam[['nclass', 'math', 'english']] # 여러 변수 추출 exam.drop(columns = 'math') # 변수 제거 exam.drop(columns = ['math', 'english']) # 여러 변수 제거 ## 3. pandas 명령어 조합하기 exam.query('math >= 50')[['id', 'math']].head() ##..

반응형