본문 바로가기
IT,SW,Data,Cloud,코딩/Python

2023년6월6일 EDA 공부

by 착실하게 2023. 6. 6.
반응형
import pandas as pd 
X_train = pd.read_csv("data_atype/X_train.csv")
X_test = pd.read_csv("data_atype/X_test.csv")
y_train = pd.read_csv("data_atype/y_train.csv")

# 데이터 내용 간단확인
print(X_train.head())
print(X_train.sample(3))

# 데이터 행,열 갯수 확인
print(X_train.shape)

# 데이터 타입 확인 
print(X_train.info())

#수치형 컬럼통계값 확인
print(X_train.describe())
#age에 마이너스값 있다 ㅡ> 이상해보임!! 등등을 확인해라.

#범주형 컬럼통계값 확인
print(X_train.describe(include='O'))
# count: 결측치 제외 몇개
# unique:고유값 개수
# top : 최빈값 데이터 
# freq : 최빈값의 개수 

#test데이터도 확인해보기
#범주형데이터는 train 데이터와 test 데이터의 범주값이 동일한지 확인하기 #개수 뿐만 아니라 데이터 내용까지 동일해야함
print(X_test.describe())
print(X_test.describe(include='O'))

#차이가 있고없고에 따라 feature engineering에서 작업이 조금 달라질 수 있기 떄문.

print(X_train.isnull().sum())
print(X_test.isnull().sum())

print("==========================")
print(y_train.head())

print(y_train['income'].value_counts())

print(X_train.corr(numeric_only=True))
# corr 또한 numeric_only = True 를 써주어야함
import pandas as pd 
import numpy as np 

data_train = pd.read_csv('data_btype/train.csv')
train = pd.DataFrame(data_train)
print(train.head(3))

data_test = pd.read_csv('data_btype/test.csv')
test = pd.DataFrame(data_test)
print(test.head(3))

print(train.shape, test.shape)
# (29304,16), (3257,15)
# 컬럼 개수가 다르게 주어지는 적이 많다고함

print(train['income'].value_counts())

# 조건별 인컴수준 확인

cond0 = train['income'] == '<=50K'
cond1 = train['income'] == '>50K'

cond_female = train['sex'] == 'Female'
cond_male = train['sex'] == 'Male'

print(len(train[cond_male]),
     len(train[cond_female]))

print(len(train[cond_male & cond0]),
      len(train[cond_male & cond1]),
      len(train[cond_female & cond0]),
      len(train[cond_female & cond1]),
      sep='\n')

print( len(train[cond_male & cond0])/len(train[cond_male]) )

print( len(train[cond_male & cond1])/len(train[cond_male]) )

print(len(train[cond_female & cond0])/len(train[cond_female]))

print(len(train[cond_female & cond1])/len(train[cond_female]))

X_train_data = pd.read_csv('data_atype/X_train.csv')
y_train_data = pd.read_csv('data_atype/y_train.csv')

X_train = pd.DataFrame(X_train_data)
y_train = pd.DataFrame(y_train_data)

print(train.shape, X_train.shape, y_train.shape)

print(y_train.head(1))


# X_train, y_train 합치기 
df = pd.concat([X_train, y_train['income']],axis=1)
print(df.shape)
print(df.head())

#concat 연습필요함.
#axis=1 하면 맨오른쪽에 붙음

X_tr = train.iloc[:,:-1].copy()
y_tr = train.iloc[:,[0,-1]].copy()
#copy 안붙이고 X_tr 만든 후에 X_tr에 뭔가 작업을 하면 train에는 안 변한다고 warning 뜬다. 
#그러므로 copy()를 항상 명시적으로 해주자.
print(X_tr.shape, y_tr.shape)
print(X_tr.head())
print(y_tr.head())
반응형

댓글