Coursera – Introduction to Data Science in Python #10 (2週目その5)

Coursera『Introduction to Data Science in Python – by University of Michigan』の学習メモ

Indexing Dataframes

indexは行のラベル。任意の項目を指定(前のオリンピックの例でれば「国名」)するか、そうでなければ、0から始まる値が連番で割り振られる。
set_index function を使ってもインデックスをセットすることができるが、この場合、元のインデックスは削除されてなくなってしまう。元の情報を残しておきたい場合は、その情報をコピーしてから行う必要がある。


df['country'] = df.index
df = df.set_index('Gold')
df.head()

インデックスが名前を持っている場合、Jupiter notebookは一行目に何もない行を生成する。データが入るべき行であれば、None や NaN となるので、この行はただの情報ということ。

インデックスをリセットすると、0から始まる値が連番がインデックスとして割り振られる。


df = df.reset_index()

センサスの人口データを扱ってみる。


df = pd.read_csv('census.csv')
df.head()

ユニークな値を抽出。


df['SUMLEV'].unique()
# array([40, 50])

SUMLEVが50のものを抽出。


df=df[df['SUMLEV'] == 50]
df.head()

残す列を指定。


columns_to_keep = ['STNAME',
                   'CTYNAME',
                   'BIRTHS2010',
                   'BIRTHS2011',
                   'BIRTHS2012',
                   'BIRTHS2013',
                   'BIRTHS2014',
                   'BIRTHS2015',
                   'POPESTIMATE2010',
                   'POPESTIMATE2011',
                   'POPESTIMATE2012',
                   'POPESTIMATE2013',
                   'POPESTIMATE2014',
                   'POPESTIMATE2015']
df = df[columns_to_keep]
df.head()

Indexカラムを二つ指定する。


df = df.set_index(['STNAME', 'CTYNAME'])
df.head()

インデックスが複数あるものからクエリを行う場合、その順番通りに検索するインデックスを指定する必要がある。


df.loc['Michigan', 'Washtenaw County']

df.loc[ [('Michigan', 'Washtenaw County'),
         ('Michigan', 'Wayne County')] ]

Missing Values

元データの値がない場合のルールを特定し、データを整えるプロセスが求められる。(値がない場合、PandasではNone、NumPyでは NaN となる。 )

Pandasで値がない場合などに決まった値を入れる filling function (fillna)がある。

ffillは、NaNの場合、前のrowの情報を入れるメソッド。


df = df.fillna(method='ffill')

Source

兵庫県西宮市生まれのフリーランスRailsエンジニア。海外を拠点にデジタルノマド生活中。/ 前職・資格:公認会計士 / プログラミング言語:Ruby, JavaScript, HTML, CSS / 日本語・英語
コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です