본문 바로가기
Study/Python

[Python] Train Data 실습

by YoungD 2023. 10. 18.

1. 타이타닉호 승객 데이터 읽어오기

In [1]:
import pandas as pd
In [2]:
train = pd.read_csv('train.csv', index_col='PassengerId')
In [3]:
train
Out[3]:

2. 각 컬럼별 데이터 개수 확인

In [4]:
train.shape
Out[4]:
(891, 11)
In [5]:
train.count()
Out[5]:
Survived    891
Pclass      891
Name        891
Sex         891
Age         714
SibSp       891
Parch       891
Ticket      891
Fare        891
Cabin       204
Embarked    889
dtype: int64

3. 승객 중 성별 인원수, 선실별 인원수, 사망/생존별 인원수, 나이별 인원수 구하기

In [6]:
train['Sex'].value_counts()
Out[6]:
male      577
female    314
Name: Sex, dtype: int64
In [7]:
train['Pclass'].value_counts()
Out[7]:
3    491
1    216
2    184
Name: Pclass, dtype: int64
In [8]:
train['Survived'].value_counts()
Out[8]:
0    549
1    342
Name: Survived, dtype: int64
In [9]:
train['Age'].value_counts()
Out[9]:
24.00    30
22.00    27
18.00    26
19.00    25
28.00    25
         ..
36.50     1
55.50     1
0.92      1
23.50     1
74.00     1
Name: Age, Length: 88, dtype: int64

3. 나이정보 카테고리 만들기

In [10]:
ages = train['Age']
bins = [0, 15, 29, 49, 60, 99]    # 구간
# 구간 -> 초과~이하
labels = ['미성년자', '청년', '중년', '장년', '노년']    # 구간의 이름
# 1~15 - 미성년자, 16~29 - 청년, 30~49 - 중년, 50~60 - 장년, 61~99 - 노년

cats = pd.cut(ages, bins, labels=labels)
In [11]:
train['Cats'] = cats
In [12]:
train.head()
In [13]:
train['Cats'].value_counts()
Out[13]:
청년      301
중년      256
미성년자     83
장년       52
노년       22
Name: Cats, dtype: int64

4. 타이타닉호 승객을 사망자와 생존자로 나누고 각 그룹에 대한 나이대별 비율 구하기

In [14]:
# 생존자
# survived1['Cats'].value_counts(dropna=False) / survived1['Cats'].count() -> 결측치도 보여줌

survived1 = train[train['Survived'] == 1]
survived1['Cats'].value_counts() / survived1['Cats'].count()
Out[14]:
청년      0.368966
중년      0.368966
미성년자    0.168966
장년      0.075862
노년      0.017241
Name: Cats, dtype: float64
In [15]:
# 사망자

survived0 = train[train['Survived'] == 0]
survived0['Cats'].value_counts() / survived1['Cats'].count()
Out[15]:
청년      0.668966
중년      0.513793
미성년자    0.117241
장년      0.103448
노년      0.058621
Name: Cats, dtype: float64
In [16]:
train['Sex'].value_counts()
Out[16]:
male      577
female    314
Name: Sex, dtype: int64
In [17]:
survived1['Sex'].value_counts()
Out[17]:
female    233
male      109
Name: Sex, dtype: int64
In [18]:
train['Pclass'].value_counts()
Out[18]:
3    491
1    216
2    184
Name: Pclass, dtype: int64
In [19]:
survived1['Pclass'].value_counts()
Out[19]:
1    136
3    119
2     87
Name: Pclass, dtype: int64

'Study > Python' 카테고리의 다른 글

[Python]OpenCV - 2 이진화  (1) 2023.10.20
[Python] OpenCV - 1 이미지 로드 및 저장  (1) 2023.10.19
[Python] Numpy 배열  (1) 2023.10.17
[Python] Matplotlib  (0) 2023.10.16
[Python] pandas라이브러리 CrimeData 실습  (0) 2023.10.13