0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【備忘録】データ分析の手順 (titanic)

Last updated at Posted at 2020-04-28

#データ分析の手順 (titanic)
備忘録としてデータ分析の手順を記載する。

##必要なライブラリのインストール


titanic.ipynb
import  pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
from pandas import Series,DataFrame

##データの取り込み


titanic.ipynb
train = pd.read_csv('train.csv')
test = pd.read_csv('test.csv')
submission = pd.read_csv('gender_submission.csv')

##取り込んだデータを確認す
る

titanic.ipynb
#上位5件を表示
train.head()
#下位5件を表示
train.tail()
#各列のデータ数や平均、標準偏差、最小値、中央値、最高値などを表示
train.describe()
#データサイズを表示
train.shape
#データ数の確認(欠損値の確認)
train.info()
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
0 1 0 3 Braund, Mr. Owen Harris male 22.0 1 0 A/5 21171 7.2500 NaN S
1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 0 PC 17599 71.2833 C85 C
2 3 1 3 Heikkinen, Miss. Laina female 26.0 0 0 STON/O2. 3101282 7.9250 NaN S
3 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 0 113803 53.1000 C123 S
4 5 0 3 Allen, Mr. William Henry male 35.0 0 0 3

PassengerID: 乗客ID
Survived:   生存結果 (1: 生存, 2: 死亡) 
Pclass:    乗客の階級 1が一番位が高い
Name:     乗客の名前
Sex:      性別
Age:      年齢
SibSp      兄弟、配偶者の数。
Parch     両親、子供の数。
Ticket     チケット番号。
Fare      乗船料金。
Cabin     部屋番号
Embarked    乗船した港 Cherbourg、Queenstown、Southamptonの3種類がある。

取り込んだデータを様々な観点から確認する。
shapeとinfo()から欠損値の数を確認し、後ほど補完していく。

##データを可視化して確認する
男女の比を見てみる。

titanic.ipynb
sns.countplot('Sex',data=train)

image.png

男女ごとの生存比率を見てみる。

titanic.ipynb
sns.countplot('Sex',data=train,hue='Survived')

image.png

男女ごとのチケットのランクを見てみる。

titanic.ipynb
sns.countplot('Sex',data=train,hue='Pclass')

image.png

年齢の分布を見てみる。

titanic.ipynb
train['Age'].hist(bins=70)

image.png

男女の年齢層を見てみる・

titanic.ipynb
fig = sns.FacetGrid(train,hue='Sex',aspect = 4)
fig.map(sns.kdeplot,'Age',shade=True)
oldest=train['Age'].max()
fig.set(xlim=(0,oldest))
fig.add_legend()

image.png

現段階でのデータを軽く確認したところ、
男女比:男子の方が多い
生存率(男女):女性の方が生存率が高い
年齢:幅広く分布している。20〜30が中心
チケット:男性の方がランクの低いチケットを買っている

ということがわかる。
続いて、欠損値や文字列でのデータの補完を行う。

##欠損値の補完
欠損値を補完するため、どのデータに欠損値があるのか調べる。

##欠損データがどれくらいあるか調べる


titanic.ipynb
#データ数の確認(欠損値の確認)
train.info()


RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
PassengerId 891 non-null int64
Survived 891 non-null int64
Pclass 891 non-null int64
Name 891 non-null object
Sex 891 non-null object
Age 714 non-null float64
SibSp 891 non-null int64
Parch 891 non-null int64
Ticket 891 non-null object
Fare 891 non-null float64
Cabin 204 non-null object
Embarked 889 non-null object
dtypes: float64(2), int64(5), object(5)
memory usage: 83.7+ KB

上記の結果から、「Age」、「Cabin」、「Embarked」の3つのデータに欠損値があることがわかる。

##欠損データをなんとかする


titanic.ipynb

##新しい列を追加する

##ピボット化

##グループ化

##カウント

##棒グラフ化

##なんかそれっぽいグラフ化

##散布クラフ化

##ヒートマップ

##折れ線グラフ

##参考にさせていただきました!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?