kharuka2016のブログ

日々の出来事を書き留めておくブログ

pandas-Series-

入門 Python 3

入門 Python 3

【前提条件】

OS:Windows 10 64-bit, version 1607

Anaconda 4.4.0(Python 3.6 version 64-bit)インストー

NumPyのインストー

【手順概要】

1.コマンドプロンプトでIPython Notebookを起動します。

2.Series

【手順】

1.コマンドプロンプトでIPython Notebookを起動します。

ipython notebook

2.Series

2.1.panadasとpandasからSeriesをインポートします。

import pandas as pd
from pandas import Series

2.2.Seriesはindex付きの配列です。

obj=Series([3,6,9,12])
obj

Out:

0     3
1     6
2     9
3    12
dtype: int64

valuesでオブジェクトの値を参照出来ます。

obj.values

Out:

array([ 3,  6,  9, 12], dtype=int64)

indexでオブジェクトのindexを参照出来ます。

obj.index

Out:

RangeIndex(start=0, stop=4, step=1)

f:id:kharuka2016:20170724195930p:plain

2.3.indexに文字列を使用することも出来ます。

ww2_cas=Series([8700000,4300000,3000000,2100000,400000],index=(['USSR','Germany','China','Japan','USA']))
ww2_cas

Out:

USSR       8700000
Germany    4300000
China      3000000
Japan      2100000
USA         400000
dtype: int64

f:id:kharuka2016:20170724195948p:plain

2.4.indexで指定した値がとれます。また条件を指定して値を取ることも出来ます。条件式はTrueまたはFalseを返します。

ww2_cas['USA']

Out:

400000

In:

ww2_cas[ww2_cas>4000000]

Out:

USSR       8700000
Germany    4300000
dtype: int64

In:

ww2_cas>4000000

Out:

USSR        True
Germany     True
China      False
Japan      False
USA        False
dtype: bool

2.5.値が存在するか確認することが出来ます。

'USSR' in ww2_cas

Out:

True

また辞書式順序にソート出来ます。

ww2_dict=ww2_cas.to_dict()
ww2_dict

Out:

{'China': 3000000,
 'Germany': 4300000,
 'Japan': 2100000,
 'USA': 400000,
 'USSR': 8700000}

dict型からSeriesに変換します。

ww2_Series=Series(ww2_dict)
ww2_Series

Out:

China      3000000
Germany    4300000
Japan      2100000
USA         400000
USSR       8700000
dtype: int64

f:id:kharuka2016:20170724201032p:plain

2.6.indexに値がない場合はNaNが返されます。またnull判定も行えます。

countries=['China','Germany','Japan','USA','USSR','Argentina']
obj2=Series(ww2_dict, index=countries)
obj2

Out:

China        3000000.0
Germany      4300000.0
Japan        2100000.0
USA           400000.0
USSR         8700000.0
Argentina          NaN
dtype: float64

またnull判定も行えます。isnullの場合。

pd.isnull(obj2)

Out:

China        False
Germany      False
Japan        False
USA          False
USSR         False
Argentina     True
dtype: bool

notnullの場合。

pd.notnull(obj2)

Out:

China         True
Germany       True
Japan         True
USA           True
USSR          True
Argentina    False
dtype: bool

f:id:kharuka2016:20170725010354p:plain

2.7.Seriesの和を求めることが出来ます。

ww2_Series

Out:

China      3000000
Germany    4300000
Japan      2100000
USA         400000
USSR       8700000
dtype: int64

NaNを含むSeries

obj2
China        3000000.0
Germany      4300000.0
Japan        2100000.0
USA           400000.0
USSR         8700000.0
Argentina          NaN
dtype: float64

ww2_Series+obj2

Out:

Argentina           NaN
China         6000000.0
Germany       8600000.0
Japan         4200000.0
USA            800000.0
USSR         17400000.0
dtype: float64

f:id:kharuka2016:20170725010405p:plain

2.8.Seriesやindexにnameをつけることが出来ます。

Seriesにnameを付けます。

obj2.name='第二次世界大戦の死傷者数'
obj2

Out:

China        3000000.0
Germany      4300000.0
Japan        2100000.0
USA           400000.0
USSR         8700000.0
Argentina          NaN
Name: 第二次世界大戦の死傷者数, dtype: float64

indexにnameを付けます。

obj2.index.name='Countries'
obj2

Out:

Countries
China        3000000.0
Germany      4300000.0
Japan        2100000.0
USA           400000.0
USSR         8700000.0
Argentina          NaN
Name: 第二次世界大戦の死傷者数, dtype: float64

f:id:kharuka2016:20170725010418p:plain

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

参考:

udemy 実践Pythonデータサイエンス

www.udemy.com