今回は、pandasでDataFrameを扱ってみたいと思います。
DataFrameは、エクセルのように二次元のデータを、行(レコード)と列(項目、カラム)でラベルをつけて、扱えるオブジェクトです。
pandasは、1行のレコードや、1列のカラムを扱う、Seriesというオブジェクトも提供しています。
では、早速試してきます。
0. まずは、numpyライブラリとpandasライブラリをimport。
「import numpy as np」とすることで、「np」にて参照し、各種関数や定数を呼び出すことができます。「import pandas as pd」とすることで、「pd」にて参照し、各種データを扱う関数を呼び出すことができます。
「from pandas import DataFrame,Series」とすることで、DataFrame,Seriesが扱うことができます。
1. 二次元のarrayオブジェクトをDataFrameに変換する。
randint()の引数に、乱数の範囲と行列のサイズ(5×2)を渡して、サイコロを2個、5回転がした時の出目を、arrayオブジェクトに格納します。
DataFrame()の引数に、arrayオブジェクトと、オプションとしてcolumns=[列名,列名,....]を指定することで、行と列にラベルをつけた、DataFrameに変換できます。
行は、0からの数字が自動的に付与されます。
2. Seriesオブジェクトから、DataFrameを作成する。
Series()の引数に、リストとオプションでname=シリーズの名前を指定することで、名前をつけたSeriesを作成することができます。
まず、都市のSeriesを作成しました。
同様に、気温と、湿度のSeriesを作成しました。欠損は、np.nanで指定することができます。
DataFrame()の引数として、ディクショナリ{ }で各列のcolumns名とSeriesオブジェクトを渡すことで、DataFrameが作成できます。
3. DataFrameに行を追加する。
Series()の引数に追加する1行のリストと、オプションindex=[列名,列名,....]を指定することで、追加する1行分のSeriesを作成します。
「 1. 二次元のarrayオブジェクトをDataFrameに変換する。」で作成した、サイコロ2個5回分のDataFrameに、append()メソッドの引数に、追加する1行分のSeriesと、オプションignore_indes=Trueを指定することで、行が追加されます。
4. DataFrameに列を追加する。
列の追加には、DataFrameオブジェクトのindexにcolumns(列名)を指定して、arrayオブジェクトを渡すことで、追加することができます。
5. DataFrameを結合する。
DataFrameのappend()メソッドの引数に、DataFrameを渡すことで、DataFrameの結合ができます。
ただし、indexが連番とならないところに注意が必要です。
連番にする場合は、ignore_index=Trueを引数に指定する必要があります。
append()メソッドの引数に、オプションignore_index=Trueを指定することで、indexも連番にすることができました。
今回は、DataFrameを一通り使ってみました。
エクセルのように、行毎、列毎の処理が便利に使えました。
SQLとも似た色々な処理ができるので、重宝しそうです。
では、引き続き、頑張って勉強していきたいと思います。
2019年3月9日(土)にG検定を受験し、見事合格できました!
受験の体験記や勉強法などを別のブログにまとめました。
これから受験される方がいらっしゃいましたらご参考まで。