반응형
In [1]:
import numpy as np
import pandas as pd
csv 데이타 파일 읽어오기¶
데이타프레임이름 = pd.read_csv(dataFile경로, index_col='인덱스로사용할컬럼')
데이타프레임이름.shape : 구조 확인
In [49]:
train = pd.read_csv('data/train.csv',index_col='PassengerId')
train.shape
Out[49]:
데이타프레임에서 앞과 뒤에 갯수 정해서 표시하기¶
데이타프레임명.head() : 5개
데이타프레임명.tail() : 5개
데이타프레임명.head(숫자)
데이타프레임명.tail(숫자)
In [9]:
train.tail()
Out[9]:
컬럼 정보 확인하기¶
- PassengerId : 승객 번호
- Survived : 생존여부(1: 생존, 0 : 사망)
- Pclass : 승선권 클래스(1 : 1st, 2 : 2nd ,3 : 3rd)
- Name : 승객 이름
- Sex : 승객 성별
- Age : 승객 나이
- SibSp : 동반한 형제자매, 배우자 수
- Patch : 동반한 부모, 자식 수
- Ticket : 티켓의 고유 넘버
- Fare 티켓의 요금
- Cabin : 객실 번호
- Embarked : 승선한 항구명(C : Cherbourg, Q : Queenstown, S : Southampton)
In [5]:
train.columns
Out[5]:
전체 갯수¶
len(데이타프레임이름)
In [6]:
len(train)
Out[6]:
컬럼의 데이터형 확인하기¶
In [7]:
train.dtypes
Out[7]:
각 객실 등급별 분포 수 알아보기¶
데이타프레임[컬럼명].value_counts()
train['Pclass'].value_counts()
1등칸 객실 승객 10명 추출¶
train[train['Pclass'] == 1].head(10)
1등칸 객실 승객의 생존 리스트¶
train[(train['Pclass'] == 1) & (train['Survived'] == 1)].head()
1등칸 객실 승객의 생존자 수는?¶
In [23]:
# 1등칸 객실 승객의 생존자 수
result = train[(train['Pclass'] == 1) & (train['Survived'] == 1)]
result.head(3)
Out[23]:
In [24]:
len(result)
Out[24]:
3등칸 객실 남자 승객의 생존자 수는?¶
In [25]:
# 성별 컬럼 구성요소 확인하기
train['Sex'].value_counts()
Out[25]:
In [26]:
# 3등칸 객실 남자 승객의 생존자 수
result = train[(train['Pclass'] == 3) & (train['Survived'] == 1) & (train['Sex'] == 'male')]
In [27]:
result.head()
Out[27]:
In [28]:
len(result)
Out[28]:
전체 생존률 구하기¶
(생존자수/전체승객인원)*100
len(train[train['Survived'] == 1])
len(train)
(len(train[train['Survived'] == 1])/len(train))*100
round(숫자, 소수점자리수)¶
round((len(train[train['Survived'] == 1])/len(train))*100, 3)
퀴즈¶
1. 여자 생존자수 ? 남자 생존자수 ?
2. 남자와 여자의 생존률 구하기
3. 1등칸의 생존률 구하기
In [ ]:
In [43]:
# 여자 생존자수
result_female = train[(train['Sex'] == 'female') & (train['Survived'] == 1)]
print('여자 생존자수 : ', len(result_female))
# 남자 생존자수
result_male = train[(train['Sex'] == 'male') & (train['Survived'] == 1)]
print('남자 생존자수 : ', len(result_male))
In [ ]:
train['Sex'].value_counts()
In [ ]:
len(train[train['Sex'] == 'female'])
In [ ]:
len(train[train['Sex'] == 'male'])
In [44]:
# 남자와 여자의 생존률 구하기
print('여자 : ', (len(result_female)/len(train[train['Sex'] == 'female']))*100, '%')
print('남자 : ', (len(result_male)/len(train[train['Sex'] == 'male']))*100, '%')
In [45]:
# 1등칸의 생존률 구하기
print('1등칸 생존률 : ',
round((len(train[(train['Pclass'] == 1) & (train['Survived'] == 1)])
/len(train[train['Pclass'] == 1])) * 100, 2), '%')
결측값(NaN) 확인하기¶
In [20]:
# 결측값(NaN) 이면 True
train['Age'].isnull().head()
Out[20]:
In [22]:
train.head()
Out[22]:
In [50]:
# Age 컬럼값에서 결측값(NaN) 총 갯수 확인하기
len(train[train['Age'].isnull()])
Out[50]:
In [63]:
# Age 컬럼값이 결측값(NaN)인 행 추출 5개만 표시
train[train['Age'].isnull()].head()
Out[63]:
'Age' 컬럼의 결측값(NaN)을 평균값으로 대체하기¶
In [65]:
# 평균값
age_avr = round(train['Age'].mean(),2)
age_avr
Out[65]:
In [66]:
# 평균값을 'Age' 컬럼의 NaN으로 교체
train.loc[train['Age'].isnull(), 'Age'] = age_avr
In [67]:
# Age 컬럼값에서 결측값(NaN) 총 갯수 확인하기
len(train[train['Age'].isnull()])
Out[67]:
Quiz¶
1) 'Cabin' 결측값 NaN 을 공백으로 교체하기
2) 'Embarked'컬럼에서 아래와 같이 데이터값을 교체한다.
C -> France
Q -> New Zealand
S -> England
In [57]:
len(train.loc[train['Cabin'].isnull()])
Out[57]:
In [58]:
train.loc[train['Cabin'].isnull(), 'Cabin'] = " "
In [59]:
len(train.loc[train['Cabin'].isnull()])
Out[59]:
In [61]:
train.loc[train['Embarked']=='C', 'Embarked'] = "France"
train.loc[train['Embarked']=='Q', 'Embarked'] = "New Zealand"
train.loc[train['Embarked']=='S', 'Embarked'] = "England"
In [62]:
train[['Name','Embarked']].head(7)
Out[62]:
In [ ]:
In [ ]:
반응형