반응형
1. 데이터탐색: 단변량
import pandas as pd
data=pd.read_csv('Ex_CEOSalary.csv', encoding='utf-8')
data.info()
data.head()
1-1. 범주형 자료의 탐색
data['industry'].value_counts()
data['industry'] = data['industry'].replace([1, 2, 3, 4], ['Service', 'IT', 'Finance', 'Others'])
data['industry'].value_counts()
%matplotlib inline
data['industry'].value_counts().plot(kind="pie")
data['industry'].value_counts().plot(kind="bar")
1-2. 연속형 자료의 탐색
data.info()
data.describe()
data.skew()
data.kurtosis()
※ pandas 제공 기술통계 함수
- count : N/A 값을 제외한 값의 수를 반환
- describe : 시리즈 혹은 데이터프레임의 각 열에 대한 기술 통계
- min, max : 최소, 최대값
- argmin, argmax : 최소, 최대값을 갖고 있는 색인 위치 반환
- idxmin, idxmanx: 최소, 최대값을 갖고 있는 색인의 값 반환
- quantile : 0부터 1까지의 분위수 계산
- sum : 합
- mean : 평균
- median : 중위값
- mad : 평균값에서 절대 평균편차
- var : 표본 분산
- std : 표본 정규분산
- skew : 표본 비대칭도
- kurt : 표본 첨도
- cumsum : 누적 합
- cummin, cummax : 누적 최소값, 누적 최대값
- cumprod : 누적 곱
- diff : 1차 산술차(시계열 데이터 사용 시 유용)
- pct_change : 퍼센트 변화율 계산
- corr : 데이터프레임의 모든 변수 간 상관관계를 계산하여 반환
- cov : 데이터프레임의 모든 변수 간 공분산을 계산하여 반환
import matplotlib.pyplot as plt
data.hist(bins=50, figsize=(20, 15))
data['salary'].hist(bins=50, figsize=(20, 15))
2. 데이터탐색: 이변량
data.corr()
data.corr(method="pearson")
data.corr(method="spearman")
data.corr(method="kendall")
import matplotlib.pyplot as plt
plt.scatter(data['sales'], data['salary'], alpha=0.5)
plt.show()
plt.scatter(data['roe'], data['salary'], alpha=0.5)
plt.show()
data.groupby('industry')[['salary']].describe()
3. 이상치 처리
data.boxplot(column='salary', return_type='both')
data.boxplot(column='sales', return_type='both')
data.boxplot(column='roe', return_type='both')
3-1. salary 변수 이상치 처리
Q1_salary = data['salary'].quantile(q=0.25)
Q3_salary = data['salary'].quantile(q=0.75)
IQR_salary = Q3_salary-Q1_salary
IQR_salary
671.0
data_IQR=data[(data['salary']<Q3_salary+IQR_salary*1.5)&(data['salary']>Q1_salary-IQR_salary*1.5)]
data_IQR['salary'].hist()
data_IQR.hist(bins=50, figsize=(20, 15))
data_IQR.corr()
import matplotlib.pyplot as plt
plt.scatter(data_IQR['sales'], data_IQR['saraly'], alpha=0.5)
plt.show()
plt.scatter(data_IQR['roe'], data_IQR['salary'], alpha=0.5)
plt.show()
3-2. sales 변수 이상치 처리
Q1_sales = data['sales'].quantile(q=0.25)
Q3_sales = data['sales'].quantile(q=0.75)
IQR_sales = Q3_sales-Q1_sales
IQR_sales
4966.6999511718695
data_IQR=data[(data['sales']<Q3_sales+IQR_sales*1.5)&(data['sales']>Q1_sales-IQR_sales*1.5)&
(data['salary']<Q3_salary+IQR_salary*1.5)&(data['salary']>Q1_salary-IQR_salary*1.5)]
data_IQR['sales'].hist()
data_IQR.hist(bins=50, figsize=(20, 15))
data_IQR.corr()
반응형
'빅데이터분석기사 > 코드' 카테고리의 다른 글
[빅데이터분석기사] 범주변수의 변환(one-hot-encoding) (0) | 2022.06.11 |
---|---|
[빅데이터분석기사] 데이터탐색과 데이터정제 실습 (2) (0) | 2022.06.07 |
[빅데이터분석기사] 파이썬 데이터 정제 실습 (0) | 2022.06.03 |
[빅데이터분석기사] 파이썬(Python) 기초 - 자료형 if문 반복문 (0) | 2022.05.31 |
[빅데이터분석기사] 파이썬 머신러닝(ML) 기본 틀 맛보기 (0) | 2021.12.03 |