pandas入門1_「seriesについて」
こんにちは、ワタルです。
さっと見て、「あぁそうだったそうだった」と確認できるハンドブックのような存在を目指して。
pandas入門第1回目、「seriesについて」です。
pandasとは
pandasとは、データをSeriesやDataframeという型を扱うことができるモジュールのことです。
Seriesは一次元、Dataframeは二次元のデータを収納することができます。
それぞれ、行や列にそれぞれ名前が付けることができたり、多くのメソッドが存在するため、 pythonでデータ分析するときには、pandasを用いることが一般的です。
今回では、以下の関数を使えるようになることが目標です。
Series([ ])(Seriesをつくる) ser.values(値のみを返す) ser.index(indexのみを返す) 'index' in Series(Seriesの中に'index'が存在するか判定する) pd.isnull(null要素の存在を確認する) pd.notnull(nullじゃない要素の存在を確認する) ser + ser2 (Seriesの和) ser.name(Seriesに名前を付ける) ser.index.name(indexに名前を付ける)
おまじない
import numpy as np import pandas as pd from pandas import Series,DataFrame #pandasからSeriesとDataFrameをインポートしておきます。
Series([ ])(Seriesをつくる)
#Seriesをつくります。numpy.arrayとの違いは、要素にindexがあること ser = Series([3,6,9,12]) ser >>> 0 3 1 6 2 9 3 12 dtype: int64
ser.values(値のみを返す)
ser.values#値のみを返す >>> array([ 3, 6, 9, 12])
ser.index(indexのみを返す)
ser.index#indexのみを返す >>> Int64Index([0, 1, 2, 3], dtype='int64')
indexを指定して、Seriesをつくる
ww2_cas = Series([8700000,4300000,3000000,2100000,400000],index=['USSR','Germany','China','Japan','USA']) #indexを指定して、Seriesをつくる #第二次世界大戦の死傷者 ww2_cas >>> USSR 8700000 Germany 4300000 China 3000000 Japan 2100000 USA 400000 dtype: int64
indexで要素にアクセスする
ww2_cas['USA'] >>> 400000
条件式を用いて、要素にアクセスする
ww2_cas[ww2_cas>4000000]#400万人以上の死傷者を出したのは国のみ返す >>> USSR 8700000 Germany 4300000 dtype: int64
indexを用いて、要素が存在するか確認する
'USSR' in ww2_cas >>> True
pd.isnull(null要素の存在を確認する)
#別のSeriesを、先とは違うindexの指定方法でつくってみます countries = ['China','Germany','Japan','USA','USSR','Argentina'] ser2 = Series(ww2_dict,index=countries)#先のww2_casと比べて、'Argentina'というindexが余分に追加されています。 ser2 >>> China 3000000 Germany 4300000 Japan 2100000 USA 400000 USSR 8700000 Argentina NaN dtype: float64
#null要素の存在を確認します pd.isnull(obj2) >>> China False Germany False Japan False USA False USSR False Argentina True dtype: bool
pd.notnull(nullじゃない要素の存在を確認する)
pd.notnull(obj2) >>> China True Germany True Japan True USA True USSR True Argentina False dtype: bool
Seriesの和
#Seriesの中身を確認しておきます WW2_Series >>> China 3000000 Germany 4300000 Japan 2100000 USA 400000 USSR 8700000 dtype: int64
ser2 >>> China 3000000 Germany 4300000 Japan 2100000 USA 400000 USSR 8700000 Argentina NaN dtype: float64
#Seriesを足すと、同じindexの要素が足し算されます WW2_Series + obj2 >>> Argentina NaN China 6000000 Germany 8600000 Japan 4200000 USA 800000 USSR 17400000 dtype: float64
ser.name(Seriesに名前を付ける)
ser2.name = '第二次世界大戦の死傷者' ser2 >>> China 3000000 Germany 4300000 Japan 2100000 USA 400000 USSR 8700000 Argentina NaN Name: 第二次世界大戦の死傷者, dtype: float64
ser2.index.name(indexに名前を付ける)
ser2.index.name = 'Countries' ser2 >>> Countries China 3000000 Germany 4300000 Japan 2100000 USA 400000 USSR 8700000 Argentina NaN Name: 第二次世界大戦の死傷者, dtype: float64
お疲れ様でした!
次回は、こちら。
それじゃー、また。