データフレームの基本操作[pandas][DataFrame][Titanic]

2016年4月21日

kaggleのTitanicのデータを利用して、データフレーム型(DataFrame)に対する基本操作を行っていきます。

 

データフレーム型はpandasの主要なデータ構造の一つで、行とカラムで構成された可変のテーブルで構成されています。

 

Titanicのデータは下記のページから取得できます(アカウント登録が必要です)。今回はtrain.csvを利用します。

 

Titanic: Machine Learning from Disaster

 

 

スポンサーリンク

 

 

開発環境

Python 3.5.1 :: Anaconda 2.5.0 (x86_64)
jupiter 4.0.6
pandas 0.18.0

 

結果

<class ‘pandas.core.frame.DataFrame’>

  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

 

train.csvは既にデータフレーム型であることが分かります。もし配列をデータフレーム型に転換する場合は、df = pd.DataFrame(array) のように記述します。

 

 

結果

<class ‘pandas.core.frame.DataFrame’>
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.6+ KB
None

 

 

結果

  Name
0 Braund, Mr. Owen Harris
1 Cumings, Mrs. John Bradley (Florence Briggs Th…
2 Heikkinen, Miss. Laina

 

 

 

結果

  Name Sex
0 Braund, Mr. Owen Harris male
1 Cumings, Mrs. John Bradley (Florence Briggs Th… female
2 Heikkinen, Miss. Laina female

 

df.iloc[0:3,3:5] や df.ix[0:2,3:5] で同じ結果を出力することができます。

 

 

結果

577
314

 

 

結果

29.69911764705882

 

 

結果

  PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked New
0 1 0 3 Braund, Mr. Owen Harris male 22.0 1 0 A/5 21171 7.2500 NaN S 1
1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th… female 38.0 1 0 PC 17599 71.2833 C85 C 1
2 3 1 3 Heikkinen, Miss. Laina female 26.0 0 0 STON/O2. 3101282 7.9250 NaN S 1

 

Newという名のカラムが追加され、全ての要素に1が入力されているのが分かります。カラムを削除する場合は、delを利用します。

 

 

結果

  PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked Gender
0 1 0 3 Braund, Mr. Owen Harris male 22.0 1 0 A/5 21171 7.2500 NaN S 1
1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th… female 38.0 1 0 PC 17599 71.2833 C85 C 0
2 3 1 3 Heikkinen, Miss. Laina female 26.0 0 0 STON/O2. 3101282 7.9250 NaN S 0

 

 

結果

Pclass
1 38.233441
2 29.877630
3 25.140620
Name: Age, dtype: float64

 

 

結果

  female male
0 0.0 1.0
1 1.0 0.0
2 1.0 0.0

 

 

結果

  PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked Gender female male
0 1 0 3 Braund, Mr. Owen Harris male 22.0 1 0 A/5 21171 7.2500 NaN S 1 0.0 1.0
1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th… female 38.0 1 0 PC 17599 71.2833 C85 C 0 1.0 0.0
2 3 1 3 Heikkinen, Miss. Laina female 26.0 0 0 STON/O2. 3101282 7.9250 NaN S 0 1.0 0.0

 

ダミー変数に変換したSexデータフレームを、元からあるdfデータフレームと結合しています。axis=1の1は列を意味します(行は0)。

 

 

参照ページ


 

pandas 0.18.0 documentation

pandas.DataFrame

 

 

 

LINEで送る
Pocket

Copyright © 2019 思考の葉 All Rights Reserved.  プライバシーポリシー