< 공부한 내용 >
3. 기술 통계 (Descriptive Statistics)
4. DataFrame 병합
3. 기술 통계 (Descriptive Statistics)
"""
1. DataFrame 요약통계량
2. 변수 간의 상관성 분석
"""
import pandas as pd
product = pd.read_csv("../data/product.csv")
product.info()
product.head()
product.tail()
# 기술통계량 구하기
product.describe() # R에서 사용한 summary( )와 유사
'''
a b c
count 264.000000 264.000000 264.000000
mean 2.928030 3.132576 3.094697
std 0.970345 0.859657 0.828744
min 1.000000 1.000000 1.000000
25% 2.000000 3.000000 3.000000
50% 3.000000 3.000000 3.000000
75% 4.000000 4.000000 4.000000
max 5.000000 5.000000 5.000000
'''
# 행/열 통계량
product.mean(axis = 0) # 열 단위 평균
product.mean(axis = 1) # 행 단위 평균
product.sum(axis = 0) # 합계
product.min(axis = 0) # 최소
product.max(axis = 0) # 최대
# 산포도 : 분산, 표준편차
product.var(axis = 0) # 분산
product.std(axis = 0) # 표준편차
# 빈도수 : 범주형
product['a'].value_counts()
''' 각 범주별 값들의 개수
3 126
4 64
2 37
1 30
5 7
'''
# 범주 확인
product['c'].unique()
# [3, 2, 4, 5, 1]
# 변수 간의 상관분석
product.corr()
# - 모든 변수에 대한 상관분석
'''
a b c
a 1.000000 0.499209 0.467145
b 0.499209 1.000000 0.766853
c 0.467145 0.766853 1.000000
'''
product['b'].corr(product['c'])
# - 두 변수 간의 상관분석
# 0.7668526996408369
#########################
### iris dataset
#########################
iris = pd.read_csv("../data/iris.csv")
iris.info()
cols = list(iris.columns)
cols # ['Sepal.Length', 'Sepal.Width', 'Petal.Length', 'Petal.Width', 'Species']
iris[cols[:4]].corr()
'''
Sepal.Length Sepal.Width Petal.Length Petal.Width
Sepal.Length 1.000000 -0.117570 0.871754 0.817941
Sepal.Width -0.117570 1.000000 -0.428440 -0.366126
Petal.Length 0.871754 -0.428440 1.000000 0.962865
Petal.Width 0.817941 -0.366126 0.962865 1.000000
'''
iris[cols[:4]].mean(axis = 0)
# 범주형 변수
iris['Species'].value_counts()
iris['Species'].unique
4. DataFrame 병합 (Join)
import pandas as pd
# 1. DF merge
# - 공통분모의 칼럼 필요
# - 공통된 칼럼을 기준으로 두 개의 DF을 병합
wdbc = pd.read_csv("../data/wdbc_data.csv")
wdbc.info()
'''
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 569 entries, 0 to 568
Data columns (total 32 columns):
id 569 non-null int64 <- 병합의 기준이 될 칼럼
'''
cols = list(wdbc.columns)
cols
len(cols) # 32
# 1~16
df1 = wdbc[cols[:16]]
df1.info()
# 17~32
df2 = wdbc[cols[16:]]
df2.info()
# df2에 id 칼럼 추가
uid = wdbc['id'] # id 칼럼 추출
df2['id'] = uid
# df3 = df1(id) + df2(id) - 공통분모 id를 이용해 결합
df3 = pd.merge(df1, df2)
df3.info()
'''
<class 'pandas.core.frame.DataFrame'>
Int64Index: 569 entries, 0 to 568
Data columns (total 32 columns):
'''
# 2. DF concat
# - 공통된 칼럼 없이 두 개의 DF을 병합
df1 = wdbc[cols[:16]] # 1 ~ 16
df2 = wdbc[cols[16:]] # 17 ~ 32
df3 = pd.concat(objs = [df1, df2], axis = 1)
# axis = 1 -> 칼럼단위로 결합 (cbind 개념)
# axis = 0 -> 행단위로 결합 (rbind 개념) - 전제조건 : 같은 칼럼명을 가지고 있어야함
df3.info()
# Data columns (total 32 columns):
---------------------------------------------------------- example ----------------------------------------------------------
'Python 과 머신러닝 > II. 데이터처리 문법' 카테고리의 다른 글
[Python 머신러닝] 2장. 차트 시각화 - (3)시계열 데이터 (4) | 2019.10.18 |
---|---|
[Python 머신러닝] 2장. 차트 시각화 - (2)pandas 객체 이용 (0) | 2019.10.17 |
[Python 머신러닝] 2장. 차트 시각화 - (1)matplot (0) | 2019.10.17 |
[Python 머신러닝] 1장. Pandas - (1) Series와 DataFrame (0) | 2019.10.16 |
[Python 머신러닝] 아나콘다 설치 & 스파이더 환경설정 (0) | 2019.10.15 |
댓글